BLOGTIMES
2009/03/24

Rubyでmkpasswdを書いてみる

 
このエントリーをはてなブックマークに追加

パスワード用にoO0のような紛らわしい特定の文字が入っていないようなランダムな文字列がたくさん必要になったので、そんな要求を満たすべく簡単なスクリプトを書いてみました。

mkpasswd.rb

#!/usr/bin/env ruby require 'optparse' def mkpasswd(n) #chars = ("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_*;:@{}()[]#$%&=-").split(//) chars = ('abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ123456789_*;:@{}()[]#$%&=-').split(//) chars.sort_by{rand} chars_size = chars.size password = Array.new(n){ chars[rand(chars_size)] }.join return password end params = {} option_parser = OptionParser.new {|opt| opt.on('-l LENGTH'){|val| params[:len] = val.to_i} opt.parse!(ARGV) } params[:len] = 8 if !params[:len] || params[:len] == 0 puts mkpasswd(params[:len])

chars.sort_by{rand}の部分はなくても結果はあまり変わらないと思うのですが、生成された文字列がちょっと偏っているような気がしたので気休めです。


    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/2976
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン