2012-9-17 (月)
Posted by 不法電波君 at 10:00+09:00
Categories: コンピュータ |
コメント (0) | トラックバック (0)
2012-9-16 (日)
Microsoft Excelで0~9とa~z(小文字)を使って任意の桁数のランダムなパスワードを生成しようかと思ったんだけど、全然スマートにできない。これらの文字を使った1桁の乱数なら、以下の計算式で簡単に生成できる。
=IF(RANDBETWEEN(1,36)<11,CHAR(RANDBETWEEN(48,57)),CHAR(RANDBETWEEN(97,122)))
このRANDBETWEEN関数はとても便利だが、「分析ツール」に含まれる関数のため、利用するためには分析ツールアドインの組み込みが必要。それが嫌な場合はより一般的なRAND関数を利用しても、以下のとおり人間の視覚的にはわかり辛い計算式ながら可能。
=IF(RAND()*36<10,CHAR(RAND()*10+48),CHAR(RAND()*26+97))
しかし、いずれにせよ、任意の桁数のパスワードを生成しようとすると、どうしても格好悪い方法しか思い付かない。例えば、上述の計算式のいずれかをA1~A20の20個のセルにそれぞれ入れ、B1に生成したい桁数を入力し、とこかのセルに以下の計算式を入れれば、任意の桁数のパスワードは簡単に生成できるが、これでは生成できる桁数が最大20桁までに制限されてしまうし、そもそも長ったらしくて全然スマートじゃない。なお、VBAを使えば簡単なんだろうが、だったらエクセルでやらずに最初からPerlでワンライナーだって。
=LEFT(A1&A2&A3&A4&A5&A6&A7&A8&A9&A10&A11&A12&A13&A14&A15&A16&A17&A18&A19&A20,B1)
ダッセ俺超ダッセ。でも、"=CONCATENATE(A1:A20)
"で範囲指定した文字列を一つに結合できないExcelもいかがなものかと思う。
Posted by 不法電波君 at 13:49+09:00
Categories: コンピュータ |
コメント (0) | トラックバック (0)