将 sha1 转换为 sha256

Converting sha1 to sha256

我有一个生成 openssl sha256 密钥的 .sh 文件

$(echo -n ${DATA} | openssl sha256 -binary | base64)

并且需要生成相同的密钥以将其与在我的 php 文件中使用 sha256 进行比较,旧密钥是 sha1。 这是我现在的 php 代码,它输出良好的 sha1 字符串。

$params['Code'] = base64_encode(sha1($params['Product'] . $params['Model'] . $params['Number'],true));

我将 sha1 更改为 sha256,但出现内部服务器错误。

看来你想用这个:

$data = $params['Product'] . $params['Model'] . $params['Number'];
$params['Code'] = base64_encode(hash('sha256', $data, true));

但鉴于 Magnus Eriksson 的第一条评论,我也不明白为什么这很难达成。

请注意,我们无法验证这是否会产生与您期望的相同的输出。