我正在编写自己的SSL版本,为了创建主密钥,我需要创建两个16字节的随机数并对它们进行异或运算。有人能帮我做到这一点吗?
secrets
模块。 secrets.token_bytes(16)
将输出 16 个随机字节。from secrets import token_bytes
print(token_bytes(16))
对于 Python <= 3.5:
import os
print(os.urandom(16))
为了对长度均为16的字节a
和b
进行异或操作
byteorder = "little"
bytesize = 16
tmp_int = int.from_bytes(a, byteorder) ^ int.from_bytes(b, byteorder)
return tmp_int.to_bytes(16, byteorder)
关于什么?
int(os.urandom(16).encode('hex'),16) ^ int(os.urandom(16).encode('hex'),16)
/dev/random
(从中读取16个字节),但首先请阅读random(4)。请非常小心,这是一个非常敏感的问题,很多事情可能会悄悄地出错。顺便说一句,我认为从头开始重写SSL是不合理的(除了学习目的)。