openssl — PHP openssl_digest принимает шестнадцатеричную строку

Я хочу вычислить дайджест шестнадцатеричного значения в PHP. Когда я пытаюсь использовать метод ниже, он производит вывод, но вывод является неправильным. Мне нужно передать шестнадцатеричное значение openssl_digest функционировать как двоичный формат, и я не знаю, как это сделать.

openssl_digest("d18b5be5aaa7b5d65c8c4cc1a86b081f6f42c86af071f234f5abeb3c54132fa000000001", "sha256");

Output: e545ada40e461a01c1778e0ec16800234938e448b41d3d437bdb76a900436616
Expected: 5910bcacfd66fba4f880d9f291d243710b08176505015bd8408d8b5c4aaa7a52

Как рассчитать истинный результат?

0

Решение

Просто преобразуйте свою шестнадцатеричную строку в двоичную с hex2bin:

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]