mysql - 如何在MySQL数据库中存储AES加密信息

标签 mysql encryption aes

我有一段信息使用 aes-256-cbc 加密进行编码。我应该如何将它存储在数据库中?目前我正在使用 VARCHAR(255) utf8_bin。这样可以吗,还是我应该使用其他字段类型,如 VARBINARY(255)?在这种情况下使用 VARCHAR 是否有可能丢失一些数据?谢谢。

最佳答案

尽管在数据库中存储加密(而不是散列)密码可能(不)适当,但 AES 密文是二进制数据,因此 should be stored as such ,即在 BINARY / VARBINARY 中列或 BLOB .

也可以对密文进行编码,例如作为base64 ,然后将其存储在文本(即 CHAR/VARCHAR/TEXT)列中。这不太节省空间,但它可能有时更方便,例如当以视觉方式检查数据或在可能无法处理包含任意二进制数据的字段的程序之间传递数据时。

关于mysql - 如何在MySQL数据库中存储AES加密信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33701936/

相关文章:

c - 如何有效地多线程算法?

mysql - 在动态 View 中使用准备好的语句

mysql - 关于在 MySQL 中使用 md5() 内置函数哈希的问题

c - Microsoft Crypto API 禁止使用 RSAES-OAEP key 传输算法

soap - 寻找 Java 库/API 来为带有附件的 SOAP 消息实现 WS-Security(SwA)

security - 使用同一文件的校验和加密文件

php - 当我在数据库中保存数据时,我真的需要使用 mysql_real_escape_string 吗?

mysql - Galera:索引大数据时无法写入数据库

algorithm - 如何编写包含加密功能的 URL 缩短器?

使用 AES 的 Android Lollipop 解密无法正常工作