-1

私はmysqlに小さな問題があります。テーブルにデータがあり、それらを暗号化したい。私はこのコマンドを使用します:

UPDATE `Name_Table` SET `COL1`=(SELECT AES_ENCRYPT( `COL1`, 'difficultKey')) WHERE 1

UPDATE `Name_Table` SET `COL1`=AES_ENCRYPT( `COL1`, 'difficultKey') WHERE 1

しかし、これは私のデータを破壊することをお勧めします (私は復号化できません)。手伝って頂けますか?

私はこれを使用します: - phpmyadmin (ブックマーク - sql) - 文字列を比較する utf8_general

助けてくれますか?

4

1 に答える 1

1

あなたの列のデータ型は「varchar/char」だと思います。そのため、データは破壊されています。どうやら、AES_ENCRYPTされるものはすべてblob形式で保存する必要があります

これは、varcharフィールドが暗号化から生成された特定の文字を処理できないためだと思います。

AES_ENCRYPTのMYSQLドキュメントを引用します。

「AES_ENCRYPT()は文字列を暗号化し、バイナリ文字列を返します」

したがって、BLOB(Binary Largeオブジェクト)が必要になります。

于 2012-05-18T05:36:43.627 に答える