

No.2ベストアンサー
- 回答日時:
AES_ENCRYPT関数はバイナリデータを出力します。
質問者さんは、varchar型などのカラムに暗号化後データを入れているのではないかと思いますが、blob型(tinyblobなど)のカラムに入れる必要があります。blob型カラムのサイズは、暗号化前データのバイト数に1を加えた数値を、16の倍数に切り上げた分だけ必要です。暗号化前データの長さが19バイトならば、暗号化後のデータを保存するカラムは32バイト必要です(この場合はtinyblobでよい)。
varcharやchar型のカラムに暗号化後のデータを保存する場合は、HEX関数でHEXダンプしてから保存します。その場合、さらに大きなサイズのカラムが必要です(HEXしない場合の倍のサイズが必要)。
ありがとうございます。うまくいきました。
はじめて行うことだったので、マニュアルを見ながらやったのですが、ここまで書いてくれていませんでした。当然と言えば当然ですね。
スッキリ!です。
No.1
- 回答日時:
文字列の長さ制限が単純に適用されているのでは?
もうすこし具体例をだしていただけると回答のしようもあるかと。
この回答への補足
暗号化 UPDATE kaiin SET card_no= aes_encrypt('1111-1111-1111-1111','happy') where vmem_no=9;
$result = mysql_query($sql,$db) or die("失敗しました");
暗号化後の文字列が短くなります。
復号化
SELECT AES_DECRYPT(card_no,'happy') FROM kaiin where kaiin_no =9;
$result = mysql_query($sql,$db) or die("失敗しました");
if($row = mysql_fetch_array($result,MYSQL_ASSOC)){
print "card_no=".$row['card_no']."<hr>";
}
復号化のデータはNullとなってしまいました。
どこがおかしいでしょうか?教えて下さい。
お願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
BGMを教えてほしいです!
-
テーブル名が可変の場合のクエ...
-
LIMIT で条件を満たしているの...
-
同一日に複数レコードがある場...
-
MAMP 99ドル約1.6万円 高い...
-
あってますか?SQL
-
WHERE `年月日` = '晴' OR `年...
-
SQLです教えてくださいお願いし...
-
SQLを作ったのですがうまくいき...
-
(初心者)MySQLやmaraDBで、crea...
-
SQLです教えてくださいお願いし...
-
SQLです教えてくださいお願いし...
-
SQLです教えてください。
-
SQLです教えてくださいお願いし...
-
SQLです教えてくださいお願いし...
-
SQLです教えてくださいお願いし...
-
utf8bomとutf8mb4の違いがいま...
-
「総降水量が100mm以上になる...
-
SQLで漢字名称を都道府県や市区...
-
SQLあってますか?こう?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SELECT文で、指定カラム以外の...
-
一部のカラムでdistinctし全て...
-
UNIONする際、片方テーブルしか...
-
ホームページを作ろうと思いま...
-
AUTO_INCREMENTに0はダメ?
-
SQLでカラムを追加し、条件に合...
-
MYSQLで全てのカラムから検索す...
-
now()かCURRENT_TIMESTAMPか
-
カラムとコラムの使い分け
-
MySQLで論理名を取得する方法
-
GREATESTで NULLをスルーする方...
-
【SQL】select に ワイルドカー...
-
エクセルかワードで家系図を作...
-
カラムをコピーして、新規カラ...
-
波形データを格納するデータベース
-
update時にtimestampが更新され...
-
カラム表示の幅
-
アドレスブックの登録について
-
最大2147483647なのに何故int(1...
-
MySQLで先頭にカラムを追加
おすすめ情報