HMAC SHA256
先加密在进行base64编码
import hashlib
import hmac
import base64
message = bytes("Message").encode('utf-8')
secret = bytes("secret").encode('utf-8')
signature = base64.b64encode(hmac.new(secret, message, digestmod=hashlib.sha256).digest())
print signature
#如果secret是base64编码,需要先decode。urlsafe_b64encode就是把字符+和/分别变成-和_
signature = base64.urlsafe_b64encode(hmac.new(base64.b64decode(secret), message, digestmod=hashlib.sha256).digest())
print "signature:%s"%signature
python2 pyDes triple_des:
from pyDes import *
import base64
key = 'ZmQzZjBlYTdhOTU5ZTE3Yzc0NThjZTNkYTU5MzI3ZGM5NDBhNWQ1MWMxNDYzNDEwNjk2NGQzY2E0ZjJlODE2M===' # 密钥 8位或16位,必须为bytes
def padding_key(key):
if len(key) > 24:
return key[:24]
else:
return key+"\0"*(24-len(key))
data = "name@abc.cn"
print padding_key(key)
k = triple_des(bytes(padding_key(key)), ECB, pad=None, padmode=PAD_PKCS5)
d = base64.b64encode(k.encrypt(data))
print "Encrypted: %r" % d
print "Decrypted: %r" % k.decrypt(base64.b64decode(d))