MYSQLでデータの暗号化を行う AES_ENCRYPTとAES_DECRYPT

現在の評価  
1 vote, average: 5.00 out of 51 vote, average: 5.00 out of 51 vote, average: 5.00 out of 51 vote, average: 5.00 out of 51 vote, average: 5.00 out of 5  (1 投票, 平均点: 5.00, 総合点:5 )


  にほんブログ村 PC家電ブログ Macへ    
人気記事一覧




Twitterに投稿

データベースのセキュリティー強化の方法として

AES_ENCRYPTとAES_DECRYPTを利用すると暗号化を行えるようです。

スクリーンショット 2013-02-23 0.34.49

準備
`test`テーブルに`id`,`name`のフィールドを作成します。

こんな感じ
CREATE TABLE IF NOT EXISTS `test` (
`id` int(11) NOT NULL,
`name` varchar(500) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

nameは暗号化すると倍のサイズがいるようなので200文字の倍で400と余裕をもって500にしてみましたが実際はよくもうちょっと細かく計算した方がいいと思います。

参考サイト:http://d.hatena.ne.jp/yamaback/20110819/1313735667

暗号化
INSERT INTO `test`(`id`, `name`) VALUES (1,HEX(AES_ENCRYPT(‘パスワードです!’, ‘password’)))

復号化
SELECT CONVERT( AES_DECRYPT( UNHEX( name ) , ‘password’ ) USING utf8 ) name FROM `test`

CONVERTをはさまないと文字化けして値が取得できませんでした。

参考サイト:http://ap.atmarkit.co.jp/bbs/core/fjava/20823

こんな感じでいけそうなのですが・・・

パスワードを暗号化する、ユーザ名を暗号化する等に利用するのによさそうです!


■この記事を評価する■
12345  (1 投票, 平均点: 5.00)
Loading...


カスタム検索






高評価記事一覧




コメント 停止中