Mysql二进制存储问题

时间:2010-03-06 19:16:59

标签: mysql hash binary

我使用sha256进行散列并以二进制形式输出,并将其存储在Mysql的BINARY(32)中。

 echo $testsha256 = hash( 'sha256', "aKyAmNsb", true );

但是,当我从数据库中检索此值时,它是不同的

 print_r(str_split($returnedpassword));
 echo "<br>";
 print_r(str_split($testsha256));
 echo "<br>";

数组([0] =&gt;ú[1] =&gt;È[2] =&gt; c [3] =&gt; [4] =&gt; u [5] =&gt; k [6] = &gt;ë[7] =&gt; a [8] =&gt;Ð[9] =&gt;‰[10] =&gt; V [11] =&gt;û[12] =&gt; E [13] =&gt; ; [[14] =&gt; [15] =&gt;Ø[16] =&gt;Ý[17] =&gt; Q [18] =&gt;â[19] =&gt;ž[20] =&gt;? [21] =&gt; [22] =&gt;¾[23] =&gt;¨[24] =&gt;÷[25] =&gt; 9 [26] =&gt;í[27] =&gt;Ž[28 ] =&gt; [29] =&gt; 5 [30] =&gt; [31] =&gt;)

数组([0] =&gt;ú[1] =&gt;È[2] =&gt; c [3] =&gt; [4] =&gt; u [5] =&gt; k [6] = &gt;ë[7] =&gt; \ [8] =&gt; a [9] =&gt;Ð[10] =&gt;‰[11] =&gt; V [12] =&gt;û[13] =&gt; ; E [14] =&gt; [[15] =&gt; [16] =&gt;Ø[17] =&gt;Ý[18] =&gt; Q [19] =&gt;â[20] =&gt;ž [21] =&gt;?[22] =&gt; [23] =&gt;¾[24] =&gt;¨[25] =&gt;÷[26] =&gt; 9 [27] =&gt;í[28 ] =&gt;Ž[29] =&gt; [30] =&gt; 5 [31] =&gt;)

正如你所看到的,从Mysql返回的二进制文件在索引8上的'a'之前缺少'\'。索引8应该保持'\',就像它在$ testsha256中一样,但'\'不是那里有$ returnresult

1 个答案:

答案 0 :(得分:1)

将哈希插入数据库时​​使用mysql_real_escape_string