python2.7下面字节数组(ByteArray)和16进制字符串(HexString)转化
2017-12-21 09:55
344 查看
由于是python2.7
严谨起见,文中不使用字符串的说法,下面只使用str或者unicode的说法
之所以有这个需要,是因为:
Hmac-sha1加密在网上计算的结果是HexString,也就是16进制字符串
而在python中的计算结果是ByteArray,两者结果不同,于是就萌生了两者如何转化的疑问.
由于python2.7中没有Bytes
py2没有bytes的概念 所以把字节数组当成str输出了
下面是互相转化的方法:
严谨起见,文中不使用字符串的说法,下面只使用str或者unicode的说法
之所以有这个需要,是因为:
Hmac-sha1加密在网上计算的结果是HexString,也就是16进制字符串
而在python中的计算结果是ByteArray,两者结果不同,于是就萌生了两者如何转化的疑问.
由于python2.7中没有Bytes
py2没有bytes的概念 所以把字节数组当成str输出了
下面是互相转化的方法:
# coding: utf-8 #在线计算链接http://tool.oschina.net/encrypt?type=2 #用来加密的字符串:csdmniojfw98nvdico #需要输入的秘钥:214fdsf23dc import hmac import hashlib import base64 import hashlib def hmac_sha1(app_secret,base_result): result=hmac.new(app_secret,base_result, hashlib.sha1).digest() l=['{:02X}'.format(ord(i)) for i in result] s=''.join(l) print"以上是从python结果转化为在线计算结果,也就是从字节数组转化为16进制数组" news=bytearray.fromhex(s) print"以上是从在线计算结果转化为python结果,也就是从16进制数组转化为字节数组" print "s=",s print "news=",news return result if __name__ == '__main__': app_secret='214fdsf23dc' base_result='csdmniojfw98nvdico' result=hmac_sha1(app_secret,base_result) print "result=",result
相关文章推荐
- Java将字节数组转化为16进制字符串的多种方案
- python字符串str和字节数组相互转化方法
- python字符串str和字节数组相互转化
- python字符串str和字节数组相互转化
- python字符串str和字节数组相互转化
- java中字节数组抓转化为16进制字符串
- 字节数组byte[]与16进制字符串的相互转化
- 字节数组和16进制表示的字符串互相转化
- 加密解密基础问题:字节数组和16进制字符串的相互转换
- 加密解密基础问题:字节数组和(16进制)字符串的相互转换(转)
- Java 将字节数组转化为16进制的多种方案
- 字节数组与16进制字符串互转
- 16进制字符串与字节数组相互转换
- 字节数组格式化为16进制字符串
- C# 16进制与字符串、字节数组之间的转换
- 16进制字符串转字节数组
- C# 16进制与字符串、字节数组之间的转换
- delphi中如何将string类型的字符串数据转化成byte[]字节数组类型的数据
- python 将字符串转化成16进制进行UDP的发送
- php字符串与byte字节数组转化类示例