ランダム文字列スクリプト (オープンソース)@2014.08.11

メール添付ファイルなどにパスワードをかけてファイルを送信することはよくある話ですね。最初の内は自分で考えていたパスワードですが、さすがに毎回毎回考えるのもなかなかしんどいです。そこで、コマンド一つでランダムな文字列のパスワードを生成できた方が楽だと思い、下記のような perl スクリプトを作りました。またLinux等のターミナル上で出力された文字列を毎回メールツールなどへコピー&ペースト(コピペ)するのも面倒なため、pbcopy が入っている場合はクリップボードに生成されたパスワードを入るようにしました。本perlスクリプトを使ってみてください。

#!/usr/bin/perl
# random password script
# Written by BOSCO Technologies Inc.
# https://www.bosco-tech.com/bs-tech/
# You may modify or distribute this file by remaining above line
use strict;
use warnings;
my $length = 8;
if (@ARGV > 0) {
        $length = $ARGV[0];
}
my @elements = ('a'..'z', 'A'..'Z', 0..9, '-', '_', '@');
my $passwd = '';
while (length $passwd < $length) {
        $passwd .= @elements[int rand(@elements)];
}
print $passwd . "\n";
my $loc = `whereis pbcopy`;
if (length $loc) {
        `printf $passwd | pbcopy`;
}

使い方は下記の通りで、引数無しの場合は 8 文字の英数字+一部の記号をランダムで組み合わせたパスワードを、引数ありの場合は指定された長さのパスワードを生成します。

$ ./genpasswd
tCs1IgW_
$ ./genpasswd 16
qQ61D@VPkxnYLI-f