Python hmac.new与php hash_hmac不同

时间:2017-01-23 22:41:21

标签: php python cryptography

我想将以下php代码转换为python

<?php echo(strtoupper(hash_hmac('SHA256', $hashinput, pack('H*',$securesecret)))); ?>

使用以下输入:

$securesecret = "5454545454545454646464646" 

$hasinput = "user_transactionid=ZXeCLFdcoiyLyONd5Ub99cUOMsFPw9kkDRdfMJY0&vpc_AccessCode=74747474&vpc_Amount=200&vpc_CardExp=2012&vpc_CardNum=4242424242424242&vpc_CardSecurityCode=323&vpc_Command=pay&vpc_Currency=USD&vpc_Gateway=ssl&vpc_MerchTxnRef=22222&vpc_Merchant=52525252&vpc_OrderInfo=22222&vpc_ReturnURL=http://localhost/PHP/PHP_VPC_3DS 2.5 Party_DR.php&vpc_Version=1&vpc_card=Visa"

这是使用php的输出,这是正确的

D4A3343CB9E41BD328C67299BBCB602CDCE03E9D857C09F3BD94F2DC9112F2FE

但是,使用下面的python方法和上面相同的输入会产生不同的输出。

HMAC.new( force_bytes(securesecret), msg= hashInput.rstrip('&').encode('utf-8'), digestmod=SHA256).hexdigest().upper()

来自python的输出

7A935F1BE9CA69CD45C985BC2696A6DCFED9CFFD8DED86C5C8593CA974B80974

为什么这两种方法产生不同的输出?

0 个答案:

没有答案