#author("2024-06-22T08:14:13+00:00","default:wikiadmin","wikiadmin")
-暗号化についてまとめてみる

#contents

*暗号化の種類 [#yc44a260]

可逆(元に戻せる)と不可逆(元に戻せない)がある。パスワードの検証などは戻す必要がないので不可逆でもいい。

**不可逆暗号化 [#y0062b73]

SHA1,MD5など。MD5は衝突(入力値が違うのに暗号化後は同じになる)の可能性が高いので避けたい。

**可逆暗号化 [#p1485668]

不可逆であればかならず上記MD5等が引っかかるのにこっちは情報が少ない。困ったもんだ。

*MySQL [#w9e75b38]

参考サイト

http://d.hatena.ne.jp/yamaback/20110819/1313735667

**可逆暗号化 [#i0292156]

一番安全と思われる方法。バイナリーが帰って来るのでBLOBかVARBINARYの列に入れること。だが、意図せぬx20によるトリムが怖いのでBLOB推奨とのこと

 mysql> SELECT AES_ENCRYPT('test','KEY');
 +---------------------------+
 | AES_ENCRYPT('test','KEY') |
 +---------------------------+
 ィy鏡稽ハカ?          |
 +---------------------------+
 1 row in set (0.00 sec)

-バイナリになってしまうのでHEXかます。

 mysql> SELECT HEX(AES_ENCRYPT('test','KEY'));
 +----------------------------------+
 | HEX(AES_ENCRYPT('test','KEY'))   |
 +----------------------------------+
 | 24400DA879F9E28BBE8C6DCA0CB6103F |
 +----------------------------------+
 1 row in set (0.01 sec)

-戻すにはUNHEX

 select AES_DECRYPT(UNHEX(password),'key')

#counter

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS