当生成新的RSA私钥,并将randfunc设置为从/ dev / input / mice读取的自定义函数时,它将连续读取并且永不停止。
我尝试提供原始的MOUSEFILE.read函数而不是包装器,但这没有帮助。但是,通过将鼠标输入的预读数据输入到使用random.choice从所述数据中选择随机字节的函数中,它可以正常工作。
变量:
MOUSEFILE = open("/dev/input/mice","rb")
我的最终目标(由于某些原因无效)
def randfunc(n):
return MOUSEFILE.read(n)```
具有random.choice的预读功能有效:
MOUSEDATA = MOUSEFILE.read(1024)
def randfunc2(n):
res = b''
while len(res) < n:
res += bytes([random.choice(MOUSEDATA)])
return res
我可以通过在其中输入几个打印语句来确认我的randfunc实际上是从鼠标输入正确读取的。它似乎处于从randfunc读取1和63字节的连续循环中。我的randfunc2可以完美运行,但是我想让randfunc正常工作并从实时鼠标移动中读取信息。我用来生成密钥的函数是:
k = RSA.generate(1024, randfunc=x)
其中x是我的随机函数。