我正在使用sha256进行哈希运算,并以二进制形式输出它,然后将其存储在mysql的二进制(32)中。
echo $testsha256 = hash( 'sha256', "aKyAmNsb", true );
但是,当我从数据库中检索这个值时,它是不同的
print_r(str_split($returnedpassword));
echo "<br>";
print_r(str_split($testsha256));
echo "<br>";
Array ( [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]=>_¾[23]=>¨[24]=>·[25]=>9[26]=>·[27]=>_½[28]=>[29]=>5[30]=>¨[31]=>)
Array ( [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]=>_¾[24]=>¨[25]=>··[26]=>9[27]=>··[28]=>_½[29]=>[30]=>5[31]=>·)
如您所见,从MySQL返回的二进制文件在索引8的“a”之前缺少一个'\'。索引8应与$testsha256中的索引一样保留“\”,但$returnedResult中不存在“\”。