美文网首页
python2和python3区别

python2和python3区别

作者: 你猜_19ca | 来源:发表于2018-08-28 20:12 被阅读0次

    bytes和hex字符串之间的相互转换

    • 在Python2.7.x上,hex字符串和bytes之间的转换是这样的:
    >>> a = 'aabbccddeeff'
    >>> a_bytes = a.decode('hex')
    >>> print(a_bytes)
    b'\xaa\xbb\xcc\xdd\xee\xff'
    >>> aa = a_bytes.encode('hex')
    >>> print(aa)
    aabbccddeeff
    >>>
    

    在python 3环境上,因为string和bytes的实现发生了重大的变化,这个转换也不能再用encode/decode完成了

    • 在python3.5之前,这个转换的其中一种方式是这样的:
    >>> a = 'aabbccddeeff'
    >>> a_bytes = bytes.fromhex(a)
    >>> print(a_bytes)
    b'\xaa\xbb\xcc\xdd\xee\xff'
    >>> aa = ''.join(['%02x' % b for b in a_bytes])
    >>> print(aa)
    aabbccddeeff
    >>>
    
    • 到了python 3.5之后,就可以像下面这么干了:
    >>> a = 'aabbccddeeff'
    >>> a_bytes = bytes.fromhex(a)
    >>> print(a_bytes)
    b'\xaa\xbb\xcc\xdd\xee\xff'
    >>> aa = a_bytes.hex()
    >>> print(aa)
    aabbccddeeff
    >>>
    

    引用 from Crypto.Cipher import AES

    • python2.7.x 是 from Crypto.Cipher import AES
    • python3 是from Cryptodome.Cipher import AES

    参考: https://github.com/Legrandin/pycryptodome

    相关文章

      网友评论

          本文标题:python2和python3区别

          本文链接:https://www.haomeiwen.com/subject/hoaqwftx.html