我正在尝试使用mcrypt_create_iv
生成随机盐。当我测试盐是否通过回声产生盐时,它会检出,但它不是我作为参数传递给它的所需长度(32),而是小于它。
但是当我将它存储在我的数据库表中时,它显示为类似K??5P?M???4?o???"?0??
我确定它与数据库有关,但我试图更改它的排序规则以对应CI的配置设置,即utf8_general_ci,但它不能解决问题,而是生成一个更小的盐。
有谁知道可能有什么问题?感谢您的任何反馈/帮助
答案 0 :(得分:1)
函数mcrypt_create_iv()
将返回一个二进制字符串,其中包含\ 0和其他不可读的字符。根据您想要使用盐的方式,首先必须编码这些字节字符串到接受的字母表。也可以在数据库中存储二进制字符串,但当然您将无法显示它们。
由于salt通常用于密码存储,我建议看一下PHP的函数password_hash(),它会自动生成一个盐并将其包含在生成的哈希值中,所以你不需要盐的单独数据库字段。