-PR-
締切り
済み

crypt

  • 暇なときにでも
  • 質問No.1677
  • 閲覧数454
  • ありがとう数7
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 29% (20/68)

Perlの勉強をしていたところ、
 $aaa=crypt('aiu','eo')
 $bbb=crypt('aiu',$aaa)
の時に、$aaaと$bbbは同一の値であるという文がありましたが、何故そうなるのかが解りません。cryptの暗号化の規則等解る方がいらっしゃいましたら教えてください。
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全4件)

  • 回答No.1

crypt は、入力したパスワードと、saltと呼ばれる2文字からなる文字列を使って 暗号化した文字列を返します。 このとき、返す文字列の先頭2文字はsaltになっているのです。 crypt は第一引数にパスワード、第二引数にsaltを受け取るので、例の $aaa=crypt('aiu','eo'); ならば、$aaaの先頭2文字は eo になっているはず ...続きを読む
crypt は、入力したパスワードと、saltと呼ばれる2文字からなる文字列を使って
暗号化した文字列を返します。
このとき、返す文字列の先頭2文字はsaltになっているのです。
crypt は第一引数にパスワード、第二引数にsaltを受け取るので、例の
$aaa=crypt('aiu','eo');
ならば、$aaaの先頭2文字は eo になっているはずです。確認してみてください。
さらに crypt は第二引数に与えられた文字列の先頭2文字をsaltとみなします。
したがって 第二引数に 'eo' を与えても $aaa を与えても同じ salt になります。
同じパスワードと同じsaltなので、結果も同じというわけです。
  • 回答No.2
レベル6

ベストアンサー率 50% (1/2)

簡単なプログラムを作って動かしてみるとわかりますが、 確かに$aaaと$bbbは同一の値になります。 --------------------ここから-------------------- ファイル名:cript.pl #!/usr/local/bin/perl my $aaa = crypt('aiu','eo'); my $bbb = cr ...続きを読む

簡単なプログラムを作って動かしてみるとわかりますが、
確かに$aaaと$bbbは同一の値になります。
--------------------ここから--------------------
ファイル名:cript.pl
#!/usr/local/bin/perl

my $aaa = crypt('aiu','eo');
my $bbb = crypt('aiu',$aaa);

print "\$aaa = $aaa\n";
print "\$bbb = $bbb\n";
--------------------ここまで--------------------

--------------------ここから--------------------
結果
% ./cript.pl
$aaa = eokcsQLdW5n8Y
$bbb = eokcsQLdW5n8Y
--------------------ここまで--------------------

--ここから説明--

crypt関数はあらかじめ設定されているパスワードの照合などにつかいます。
cryptした文字をファイルに保存しておけば、
他の人にこのファイルを見られた場合でも安全です。

本に書いてあった文章は実はcryptの例としては
あまりわかりやすい物ではありません。
こうするとわかりやすいと思います。

---------------------------------------------------------
あなたのパスワードが yourpasswdの場合

my $aaa = cript('yourpasswd','eo');
#$aaaをファイルに保存しておく。


#パスワードを照合する

my $bbb = cript('いま入力したパスワード',$aaa);

if($aaa eq $bbb){
print "パスワードが一致しました\n";
}else{
print "パスワードが一致しませんでした\n";
}
-------------------------------------------------------

'eo' の様な文字は、SALTといって、cryptするための
設定文字になります。これは適当で構いませんが
SALTが破られるとパスワードも破りやすくなるので、
通常はcryptする都度SALTを変更したりします。


尚、cryptしてできた文字列を元に戻すというのは不可能です。
最初の例で言うと eokcsQLdW5n8Y --> aiu にするということは出来ません。

よくプロバイダで、パスワードを忘れた場合は、
こちらで設定したパスワードを郵送で送ります。
という説明がありますが、
どうして忘れてしまったパスワードを教えてくれないかは、
perlのcryptと同じ様な仕組みがあり、cryptされる前のパスワードは
プロバイダ側でもわからないからです。

  • 回答No.3

全然話題には関係ありませんが、ichigo様の仰っている暗号化で 使用する名前を・・・ 可逆暗号化:元々あった文字列を暗号化したら、また何かしらの関数を       使用して元の文字列に戻すことができる暗号化のこと 不可逆暗号化:可逆とは逆に、一度暗号化した文字列を元の文字列に        戻すことができない暗号化のこと よって、Crypt関数は、不可逆暗号化を用いているわけですが、もう一つ ...続きを読む
全然話題には関係ありませんが、ichigo様の仰っている暗号化で
使用する名前を・・・
可逆暗号化:元々あった文字列を暗号化したら、また何かしらの関数を
      使用して元の文字列に戻すことができる暗号化のこと
不可逆暗号化:可逆とは逆に、一度暗号化した文字列を元の文字列に
       戻すことができない暗号化のこと
よって、Crypt関数は、不可逆暗号化を用いているわけですが、もう一つ
問題があります。それは、使用しているOSなどによって、同じCrypt関数、
パスワード、saltを用いても、異なる結果が出てくるということです。
従って、フリーのCGIなどで、あらかじめ設定されているパスワードを
入力しても、管理者モードに入れないことなどがあります。気をつけましょう。
#事実、私の作ったものは、いつもそう・・・(爆)
#おかげで、一緒にパスワードの暗号化をしてくれるCGIも一緒につけています。
#そうすれば、テキスト部分を書き換えるだけでいいですからね。

それと同じような使い方として、化学の実験などでも使用します。
可逆変化:化学反応のうち、どちらの方向にも反応が起こり得るもの
     例)銀+酸素<->酸化銀
不可逆変化:化学反応のうち、片方の方向にしか反応が起こり得ないもの
     例)核分裂など

以上です。
間違いがありましたらご指摘ください。
ではでは☆
  • 回答No.4

全然話題には関係ありませんが、ichigo様の仰っている暗号化で 使用する名前を・・・ 可逆暗号化:元々あった文字列を暗号化したら、また何かしらの関数を       使用して元の文字列に戻すことができる暗号化のこと 不可逆暗号化:可逆とは逆に、一度暗号化した文字列を元の文字列に        戻すことができない暗号化のこと よって、Crypt関数は、不可逆暗号化を用いているわけですが、もう一つ ...続きを読む
全然話題には関係ありませんが、ichigo様の仰っている暗号化で
使用する名前を・・・
可逆暗号化:元々あった文字列を暗号化したら、また何かしらの関数を
      使用して元の文字列に戻すことができる暗号化のこと
不可逆暗号化:可逆とは逆に、一度暗号化した文字列を元の文字列に
       戻すことができない暗号化のこと
よって、Crypt関数は、不可逆暗号化を用いているわけですが、もう一つ
問題があります。それは、使用しているOSなどによって、同じCrypt関数、
パスワード、saltを用いても、異なる結果が出てくるということです。
従って、フリーのCGIなどで、あらかじめ設定されているパスワードを
入力しても、管理者モードに入れないことなどがあります。気をつけましょう。
#事実、私の作ったものは、いつもそう・・・(爆)
#おかげで、一緒にパスワードの暗号化をしてくれるCGIも一緒につけています。
#そうすれば、テキスト部分を書き換えるだけでいいですからね。

それと同じような使い方として、化学の実験などでも使用します。
可逆変化:化学反応のうち、どちらの方向にも反応が起こり得るもの
     例)銀+酸素<->酸化銀
不可逆変化:化学反応のうち、片方の方向にしか反応が起こり得ないもの
     例)核分裂など

以上です。
間違いがありましたらご指摘ください。
ではでは☆
このQ&Aで解決しましたか?
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ