HOME   入り口   MENU


No30.なんて書いたの?え?暗号? ---- crypt関数




「暗号化」!
なんて魅惑的な響き♪(^_^)
ってことで簡単に文字列を暗号化してみましょう〜
まずは準備として暗号化するときの「タネ」の長さを調べてみましょう。
echo "タネの長さ:" .CRYPT_SALT_LENGTH;

タネの長さ:12

「タネの長さ」が12だったら標準のDES暗号規則を使った2文字のタネ以外に
md5ハッシュ値を計算する「12文字のタネ」を使うことができます。

「・・・・・あのぉ。md5ハッシュ値ってなんですか?」

そうそう。たしかにその言葉自体が暗号みたいです(笑)

ハッシュ値とは計算して出た結果から元の値を求めることがとても難しい
「一定の規則」に従って計算された値のことです。
「一定の規則」というのに
「タネ」が2文字でハッシュ値13文字の標準のDES暗号
「タネ」が12文字でハッシュ値32文字のmd5
という暗号化アルゴリズム規則があり、値は英数字になります。

詳しく知りたい方は RSA Data Security, Inc.の MD5メッセージダイジェストアルゴリズムへ(^_^)


というわけで難しいことは置いておいて(え?)
暗号化してみちゃいましょう〜♪

標準DES暗号は8文字の文字列を暗号化に利用します。
同じ8文字から始まるより長い文字列については同じ結果が生成されますので
それ以上長いものを暗号化したい場合はmd5暗号を使ってください。
暗号化された文字=crypt(元文字列,タネ);

ではでは暗号化してみましょう!

標準DES暗号を使った「タネ」は 「ab」の2文字にしました。
<?php
$ango=crypt("masago","ab");
echo "「masago」を暗号化(標準DES暗号):" .$ango;
?>

実行すると

「masago」を暗号化(標準DES暗号):aby329m7u8boY

となります。

今度はmd5暗号を使った暗号化。
md5の「タネ」はcryptを使って作ります。
<?php
$tane=crypt("aiueo");//タネの生成
$ango=crypt("masago",$tane);
echo "タネ:" .$tane;
echo "「masago」を暗号化(md5):" .$ango;
?>


タネ:$1$OVxlITSm$H0MhwGJ5.ROMPU04z39.c1
「masago」を暗号化(md5):$1$OVxlITSm$t/IkyouzlZaSx4om0BFoK0


となります。

パスワード入力なんかに使えますね。(^_^) ※タネには長い文字列を指定してもmd5のときは12文字,
標準DESの場合は2文字のみが使われます!!

サンプル: こう書くと   ==>    こうなる!

暗号だ!



(オマケ)

crypt関数の他にもmd5ハッシュ値を計算するmd5関数
などがあります。
<?php
$value=md5("masago");
echo $value;
?>


masagoのmd5ハッシュ値:
f6b75b62906acdddd90576106893e5d6











  HOME