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 编码而不是解码。

posted @ 2021-12-13 15:59  p0ise  阅读(347)  评论(0)    收藏  举报