我正在尝试将大量的python代码移植到php中 - 这样做我发现这一行我找不到相应的内容:
instance = resp.get(
'instance',
uuid.uuid4().hex.encode('utf-8')
)
sha = hashlib.sha1(
self.username.encode('utf-8') + instance
)
self.params.update({'id': sha.hexdigest().upper()})
我发现https://github.com/ramsey/uuid生成了uuid4并试图模仿上面这样:
if (isset($resp['instance']))
{
$instance = $resp['instance'];
}
else
{
$uuid4 = Uuid::uuid4();
$instance = utf8_encode(dechex($uuid4->toString()));
}
$sha = sha1(utf8_encode($this->username) . $instance);
$this->params['id'] = strtoupper($sha);
这似乎没有提供相同的结果。任何人都可以帮助我在PHP中生成与python相同的结果。感谢。
答案 0 :(得分:0)
事实证明,dechex函数与python的hex不同。 在这种情况下,十六进制函数的结果是从uuid删除破折号。用str_replace解决了它。