我打算使用php函数mcrypt
来加密和解密存储在SQL数据库中的一些数据。
mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $data, MCRYPT_MODE_ECB, $iv);
我坚持使用$key
的内容。 php手册建议使用“mhash函数从字符串”创建一个键。那么使用mhash并从中获取256位密钥的最佳方法是什么?我做这样的事吗?
mhash(MHASH_SHA256, $mystring);
$mystring
需要多少个字符?
答案 0 :(得分:0)
为$mystring
传递的字符数无关紧要,mhash
每次都会返回32个字符。
命令行上的简单测试将说明
php > var_dump(mhash(MHASH_SHA256, 'blah'));
string(32) "?}?C?qnϥ?0/kB???R??e?`0?R"
php > var_dump(mhash(MHASH_SHA256, 'blahadfadf'));
string(32) "t?+jm~8??f?vD???'?R????a:??巯"
php > var_dump(mhash(MHASH_SHA256, 'blasdfafadf'));
string(32) "<?Z,?????,m???\5k??i???B???"
php > var_dump(mhash(MHASH_SHA256, 'blasasdfasdfasdfasf'));
string(32) "?]?,5Þظ?&x??T{?8?]?5?? Y?"
php > var_dump(mhash(MHASH_SHA256, 'blasasdfasdfasdfasfadfjads;fkjas;ldkfjas;dkjfa;sdjkf'));
string(32) "j?̳ebb??Z'??????9??^s???F"