我应该使用什么数据类型在 MySQL 上存储长加密消息


What datatype should I use to store long encrypted messages on MySQL?

我正在开发一个Web应用程序,该应用程序将允许用户编写消息并将其存储在数据库中,以供其他一些用户访问。我已经准备好了用户身份验证系统,并且加密系统工作正常,但我对用于存储消息的数据类型感到困惑。

我正在使用带有PHP的MySQL数据库来存储使用openssl AES-256加密的值。生成的密文是二进制的,我需要将它们存储在数据库中。

现在我可以尝试使用 base64 对二进制字符串 a 进行编码,但它将数据大小从 33% 增加到 100%。

消息可能很长,我希望我的数据库不会被性能或存储功能搞砸。出于某些原因,我还必须坚持使用MySQL。

那么我应该使用 BLOB 还是 TEXT?哪一个在性能方面更有效率?而且,BLOB的类似类型的TINYTEXT, TEXT, MEDIUMTEXT, or LONGTEXT或相应的类型应该是什么?

我想确保同时满足更快的性能和存储功能。

感谢您的帮助!

是的,如果您可以将值存储在"TEXT"数据类型中会更好。有关更多详细信息,请阅读此 http://dev.mysql.com/doc/refman/5.5/en/blob.html。

关于存储要求的知识,您可以阅读此 http://dev.mysql.com/doc/refman/5.5/en/storage-requirements.html。

希望对您有所帮助。