【发布时间】:2019-03-23 11:20:06
【问题描述】:
我有这个 PHP 代码。我序列化一个类 Foo,我得到输出 'O:3:"Foo":2:{s:6:"Fooa";b:1;s:6:"Foob";s:9:"rogthedog" ;}'。当我散列这个序列化输出时,它与字符串本身的散列不同。序列化输出不应该是等效于 'O:3:"Foo":2:{s:6:"Fooa";b:1;s:6:"Foob";s:9:"rogthedog" 的字符串;}'?
<?php
/* Write your PHP code here */
class Foo {
private $a = TRUE;
private $b = 'rogthedog';
}
$c = new Foo;
echo(serialize($c));
# This returns 'O:3:"Foo":2:{s:6:"Fooa";b:1;s:6:"Foob";s:9:"rogthedog";}'
echo(hash('sha256', serialize($c)));
# Not the same as!
echo (hash('sha256', 'O:3:"Foo":2:{s:6:"Fooa";b:1;s:6:"Foob";s:9:"rogthedog";}'));
【问题讨论】:
标签: php serialization hash