【问题标题】:PHP openssl_digest is taking string hexPHP openssl_digest 采用十六进制字符串
【发布时间】:2018-06-27 09:11:36
【问题描述】:

我想在 PHP 中计算十六进制值的摘要。当我尝试使用以下方法时,它会产生输出但输出错误。我需要将十六进制值作为二进制格式传递给openssl_digest 函数,我不知道该怎么做。

openssl_digest("d18b5be5aaa7b5d65c8c4cc1a86b081f6f42c86af071f234f5abeb3c54132fa000000001", "sha256");

Output: e545ada40e461a01c1778e0ec16800234938e448b41d3d437bdb76a900436616
Expected: 5910bcacfd66fba4f880d9f291d243710b08176505015bd8408d8b5c4aaa7a52

如何计算真实输出?

【问题讨论】:

标签: php openssl hex sha256 digest


【解决方案1】:

只需使用hex2bin 将您的十六进制字符串转换为二进制:

openssl_digest(hex2bin("d18b5be5aaa7b5d65c8c4cc1a86b081f6f42c86af071f234f5abeb3c54132fa000000001"), "sha256");
//string '5910bcacfd66fba4f880d9f291d243710b08176505015bd8408d8b5c4aaa7a52' (length=64)

【讨论】:

    猜你喜欢
    • 2020-11-07
    • 2018-09-13
    • 2010-10-04
    • 2014-05-26
    • 2014-03-07
    • 2019-07-27
    • 2013-06-07
    • 1970-01-01
    相关资源
    最近更新 更多