Могу ли я сгенерировать SHA1 на Perl или PHP? - PullRequest
4 голосов
/ 02 июня 2011

Verotel требует хеширования некоторых данных с помощью функции sha1_hex. Что именно это? Нет информации об этом во всем Интернете. Они говорят: «Используется хэш SHA-1 (шестнадцатеричный вывод)». Sha1 с шестнадцатеричным выходом?

Вот один пример, который я не могу воспроизвести:

sha1_hex ("abc777X: описание = некоторое описание продукта: priceAmount = 51.20: цена, валюта = EUR: shopID = 60678: версия = 1")

= 04d87d2718767ea0bef259c436ec63e3cde05be2

Ответы [ 5 ]

9 голосов
/ 02 июня 2011
echo sha1('abc777X:description=some description of product:priceAmount=51.20:priceCurrency=EUR:shopID=60678:version=1');

На самом деле, что sha1_hex называется sha1() в php. Вот пример, работающий над вашим вводом: http://codepad.org/9fLlr9VJ

7 голосов
/ 02 июня 2011

Для Perl: Дайджест :: SHA (обновлено из Дайджеста :: SHA1).

perl -MDigest::SHA=sha1_hex -le'print sha1_hex("abc777X:description=some description of product:priceAmount=51.20:priceCurrency=EUR:shopID=60678:version=1")'
04d87d2718767ea0bef259c436ec63e3cde05be2
7 голосов
/ 02 июня 2011
$ perl -e 'use Digest::SHA qw(sha1_hex); print sha1_hex("abc777X:description=some description of product:priceAmount=51.20:priceCurrency=EUR:shopID=60678:version=1")'
04d87d2718767ea0bef259c436ec63e3cde05be2

Хэш SHA-1 создает 20-байтовый вывод.Если вы представите эти 20 байтов в шестнадцатеричном формате, вы получите 40 символов.

0 голосов
/ 02 июня 2011

В PHP функция sha1, а не sha1_hex.

0 голосов
/ 02 июня 2011
$ php -r 'var_dump(sha1("abc777X:description=some description of product:priceAmount=51.20:priceCurrency=EUR:shopID=60678:version=1"));'
string(40) "04d87d2718767ea0bef259c436ec63e3cde05be2"
$

У меня работает.

...