Я хочу вычислить дайджест шестнадцатеричного значения в PHP. Когда я пытаюсь использовать метод ниже, он производит вывод, но вывод является неправильным. Мне нужно передать шестнадцатеричное значение openssl_digest
функционировать как двоичный формат, и я не знаю, как это сделать.
openssl_digest("d18b5be5aaa7b5d65c8c4cc1a86b081f6f42c86af071f234f5abeb3c54132fa000000001", "sha256");
Output: e545ada40e461a01c1778e0ec16800234938e448b41d3d437bdb76a900436616
Expected: 5910bcacfd66fba4f880d9f291d243710b08176505015bd8408d8b5c4aaa7a52
Как рассчитать истинный результат?
Просто преобразуйте свою шестнадцатеричную строку в двоичную с hex2bin
:
openssl_digest(hex2bin("d18b5be5aaa7b5d65c8c4cc1a86b081f6f42c86af071f234f5abeb3c54132fa000000001"), "sha256");
//string '5910bcacfd66fba4f880d9f291d243710b08176505015bd8408d8b5c4aaa7a52' (length=64)
Других решений пока нет …