Mysql二进制存储问题

标签 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] => ú [1] => È [2] => c [3] => [4] => u [5] => k [6] => ë [7] = > a [8] => Ð [9] => ‰ [10] => V [11] => û [12] => E [13] => [ [14] => [15] => Ø [ 16] => Ý [17] => Q [18] => â [19] => ž [20] => ? [21] => [22] => 3/4 [23] => ¡ [24] = > ÷ [25] => 9 [26] => í [27] => Ž [28] => [29] => 5 [30] => ˆ [31] => )

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

如您所见,从 Mysql 返回的二进制文件在索引 8 上的“a”之前缺少“\”。索引 8 应该包含“\”,就像在 $testsha256 中一样,但“\”不是在 $returnedresult 中

最佳答案

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

关于Mysql二进制存储问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2393785/

相关文章:

c# - 循环 SQL 查询的正确方法?

git - git hash-object 和 git hash-object -t 之间 SHA 哈希的差异

hash - hadoop 中的 jenkinshash 保证什么?

c - 在 C 中写入二进制文件不起作用

C 在二进制数之间添加空格

php - MySQL 语法错误——我哪里出错了?

mysql - Rails 4 - 从外部 MySQL 提取数据

mysql - 一对多关系占用更多数据库空间

c++ - 为什么要在 hash<int>()(foo) 中间添加额外的括号

java - 为什么该方法不允许来自 11-15 的输入?