Mysql二进制存储问题
我使用sha256进行散列,并以二进制输出,然后将其存储在Mysql的二进制文件中(32) 然而,当我从数据库中检索这个值时,它是不同的Mysql二进制存储问题,mysql,hash,binary,Mysql,Hash,Binary,我使用sha256进行散列,并以二进制输出,然后将其存储在Mysql的二进制文件中(32) 然而,当我从数据库中检索这个值时,它是不同的 print_r(str_split($returnedpassword)); echo "<br>"; print_r(str_split($testsha256)); echo "<br>"; print_r(str_split($returnedpassword)); 回声“”; 打印(str_分割($testsha256
print_r(str_split($returnedpassword));
echo "<br>";
print_r(str_split($testsha256));
echo "<br>";
print_r(str_split($returnedpassword));
回声“
”;
打印(str_分割($testsha256));
回声“
”;
[0[0 0]=[0 0[0[0]=>0 0[0 0]=>0[0 0]=>0[0 0[0[0[0[0[0[0[0[0 0 0]=>0 0[0 0[0]=>0[0 0[0[0[0[0[0[0]=>0[0[1]0[1]0[1]=>0[1]0[1[1]=>0[1]0[1]0[1]=>0[1[1[1]0[1]0[1]0[1]=>0[1]0[1]=>0[1]=>0[3][1][1]0[3]][3]=>[3]=>[3][3][3][3]=>[3][3][3][3][3][3][3][3][3][3][3][3]=>[29]=>5[30]=>ˆ[31]=>)
[0[0]0[0]=>0 0[0 0]=>0 0[0]0[[0 0]=>0 0[0 0]0[0 0[0[0 0 0]=>0[0[0 0 0]0[0 0]0[0 0]0[0 0]0[0]0[1]1]0[1]=>0[1[1]0[1]1]0[1]0[1]=>0[0[5]阵列[0 0[0[0[0[0[0 0]0 0]0]0]0 0 0]0]0[0[0[0]0]0]0 0[0[0[0[0]0]0]0]0[0[0[0]0]0[0[0]0]0[0[0]0[0[0 0]0[0[0[0[0[0[0[0]0]]]]]]]]]]0[0[0[0 381;[29]=>30]=>5[31]=>
正如您所看到的,从Mysql返回的二进制文件在索引8的“a”之前缺少一个“\”。索引8应该包含“\”,就像在$testsha256中一样,但是在将哈希插入数据库时使用的$returnedresult中没有“\”。您是如何插入数据的?您可以发布用于插入的PHP代码吗您的工具链中的内容已删除了一些控制字符,或者可能发生了一些不必要的编码转换。您使用的是什么语言?数据库中实际输入的是什么(“从表中选择十六进制(值”)?
print_r(str_split($returnedpassword));
echo "<br>";
print_r(str_split($testsha256));
echo "<br>";