すべてのカテゴリ » インターネット・パソコン » セキュリティ・個人情報

質問

終了

会員制WEBサイトを作っているのですが、ユーザがパスワードを忘れた時に適当なパスワードを作ってそれをメールで知らせる必要があります。
この適当なパスワードは、どのように作れば良いのでしょうか?
"abc"とかソースに書くわけにはいかず、ちょっと悩んでいます。
何か上手い方法はあるのでしょうか?
ちなみに言語はPerlでやってます。

  • 質問者:自動パスワード
  • 質問日時:2009-06-02 13:42:13
  • 0

ハッシュ関数を使ってみてはどうでしょうか?
ユーザIDとシステム時刻を連結し、そのハッシュ値をパスワードにするなど。
コードにするとこんな感じです。(今回はSHA-1を使ってみました)


#!/usr/bin/perl
use POSIX qw(strftime);
use Digest::SHA1 qw(sha1_base64);

my $userID = "ユーザID";
my $currenttime = strftime("%Y%m%d%H%M%S", localtime);
printf sha1_base64($userID.$currenttime)."\n";


参考URLです。
http://perldoc.jp/docs/modules/Digest-SHA1-2.01/SHA1.pod

  • 回答者:-_- (質問から2時間後)
  • 0
この回答の満足度
  
とても参考になり、非常に満足しました。回答ありがとうございました。

並び替え:

しんざぶろうと申します。

以下の様な書き方はどうでしょうか?
sub make_key{
my($size) = @_;
my @chars = split(//,"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789");
my $ret = '';
for (1..$size){
$ret .= $chars[int(rand($#chars+1))];
}
return $ret;
};
print make_key(20);

ちなみにハッシュというのはある特定のファイルだったり文字列を特定のキーにすることができ、元のデータが同じであれば、必ず同じキーになるものです。分かりやすく言うと。おそらくそれによって生成した文字列では、長すぎて、あまり用途に適さないため上記のようなやり方の方が適切かと思います。今回のケースでは。

この回答の満足度
  
とても参考になり、非常に満足しました。回答ありがとうございました。

関連する質問・相談

Sooda!からのお知らせ

一覧を見る