如何在 MySQL 数据库中存储 AES 加密信息
How to store AES encrypted information in MySQL database
我有一段使用 aes-256-cbc 加密方式编码的信息。我应该如何将它存储在数据库中?目前我正在使用 VARCHAR(255) utf8_bin。这样可以吗,还是我应该使用其他字段类型,如 VARBINARY(255)?在这种情况下使用 VARCHAR 是否有可能丢失一些数据?谢谢
尽管在数据库中存储加密(而不是散列)密码可能(不)合适,但 AES 密文是二进制数据,因此 should be stored as such, i.e. in a BINARY
/ VARBINARY
column or a BLOB
。
也可以对密文进行编码,例如作为 base64,然后将其存储在文本(即 CHAR
/ VARCHAR
/ TEXT
)列中。这 space 效率较低,但 可能 有时更方便,例如当以视觉方式检查数据或在可能无法处理包含任意二进制数据的字段的程序之间传递数据时。
我有一段使用 aes-256-cbc 加密方式编码的信息。我应该如何将它存储在数据库中?目前我正在使用 VARCHAR(255) utf8_bin。这样可以吗,还是我应该使用其他字段类型,如 VARBINARY(255)?在这种情况下使用 VARCHAR 是否有可能丢失一些数据?谢谢
尽管在数据库中存储加密(而不是散列)密码可能(不)合适,但 AES 密文是二进制数据,因此 should be stored as such, i.e. in a BINARY
/ VARBINARY
column or a BLOB
。
也可以对密文进行编码,例如作为 base64,然后将其存储在文本(即 CHAR
/ VARCHAR
/ TEXT
)列中。这 space 效率较低,但 可能 有时更方便,例如当以视觉方式检查数据或在可能无法处理包含任意二进制数据的字段的程序之间传递数据时。