os.urandom()编码问题
问题
用os.urandom()生成随机加密 key 的时候,出现了奇怪的结果,起初以为是编码问题,然后尝试对其解码,结果各种方式都不能正确解码
> python -c 'import os;print(os.urandom(16))'
b'@\\\x96|\x862Brv!y\xa9\x9fr#-'
解决
网上查类似的文章,最终得到如下解决方案:
import os
import binascii
binascii.hexlify(os.urandom(16))
处理后得到正常的内容:
b'405c967c86324272762179a99f72232d'
总结
生成 16 位随机字节串的时候错误地对其进行了 hex 解码,导致出现奇怪的结果,因此需要得到正常的结果需要对其进行 hex 编码而不是解码。

浙公网安备 33010602011771号