Python эквивалент Perl hmac_sha1_hex - PullRequest
2 голосов
/ 30 августа 2011

Мне нужно воспроизвести в Python, что делает Perl

  # perl
  perl -e'use Digest::HMAC_SHA1 qw(hmac_sha1_hex); my $hmac = hmac_sha1_hex("string1", "string2"); print $hmac . "\n";'
  25afd2da17e81972b535d15ebae464e291fb3635


  #python
  python -c 'import sha; import hmac; print hmac.new("string1", "string2", sha).hexdigest()'
  3953fa89b3809b8963b514999b2d27a7cdaacc77

Как вы можете видеть, шестнадцатеричный дайджест не тот же самый ... как я могу воспроизвести код perl в python?

спасибо!

1 Ответ

9 голосов
/ 30 августа 2011

Конструктор Python HMAC просто берет ключ и сообщение в обратном порядке - ключ Python hmac сначала берет ключ, а Perl Digest::HMAC - второй ключ.

python -c 'import sha; import hmac; print hmac.new("string2", "string1", sha).hexdigest()'
25afd2da17e81972b535d15ebae464e291fb3635

Совпадает с примером Perl:)

...