学习笔记分享

分享与展示个人专业知识学习笔记

0%

os.urandom()编码问题

问题

os.urandom()生成随机加密 key 的时候,出现了奇怪的结果,起初以为是编码问题,然后尝试对其解码,结果各种方式都不能正确解码

1
2
> python -c 'import os;print(os.urandom(16))'
b'@\\\x96|\x862Brv!y\xa9\x9fr#-'

解决

网上查类似的文章,最终得到如下解决方案:

1
2
3
import os
import binascii
binascii.hexlify(os.urandom(16))

处理后得到正常的内容:

1
b'405c967c86324272762179a99f72232d'

总结

生成 16 位随机字节串的时候错误地对其进行了 hex 解码,导致出现奇怪的结果,因此需要得到正常的结果需要对其进行 hex 编码而不是解码。

创作不易,支持一下吧!