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

时间:2016-03-16 08:48:33

标签: php mysql encryption blob

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

我使用带有PHP的MySQL数据库来存储使用select distinct team from players p where not exists( select * from players q where p.team = q.team and q.position = 'Pitcher' ); 加密的值。生成的密文是二进制的,我需要将它们存储在数据库中。

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

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

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

我想确保实现更快的性能和存储功能。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

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

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

希望它有所帮助。