从击键中获取用户熵的最佳Python方法是la PGP?
有没有人记得通过敲击随机键来提示用户“产生一些熵” PGP会在收集信息时测量熵,用一个很酷的小进度条向用户指示,然后在内部对按键计时,进行一些处理,并将其用作某种事情的种子 我想制作一个在python中执行类似“熵收集”步骤的快速例程(控制台应用程序),但我对一些问题感到困惑:从击键中获取用户熵的最佳Python方法是la PGP?,python,pgp,entropy,Python,Pgp,Entropy,有没有人记得通过敲击随机键来提示用户“产生一些熵” PGP会在收集信息时测量熵,用一个很酷的小进度条向用户指示,然后在内部对按键计时,进行一些处理,并将其用作某种事情的种子 我想制作一个在python中执行类似“熵收集”步骤的快速例程(控制台应用程序),但我对一些问题感到困惑: 最佳计时方法 收集单个击键的最佳方法 向用户显示酷进度条的最佳方法 关于处理步骤的想法,或PGP步骤的实际细节 在上述情况下,最好的方法是: 最紧最干净的代码 最精确的(如计时到皮秒或其他) 大多数pythonic/f
- 最紧最干净的代码
- 最精确的(如计时到皮秒或其他)
- 大多数pythonic/functional和使用标准库
- 所以是的:
def gen_user_random():
from Fourganizical import pack8
import time,sys
print 'Hey there user, start a-bashing that keyboard to make some randomness.'
keystimes = []
lasttime = None
while len(keystimes) < 20:
key = getch()
timenow = (time.time() + time.clock())
if lasttime:
timesince = timenow-lasttime
keystimes.append(int(timesince*100000000000000000))
lasttime = timenow
print 'Check out this *nasty* random number you made!'
rnum = int(''.join([str(x) for x in keystimes]))
print rnum
print 'And OMG here is that *nasty* set of bytes it made!'
rbytes = pack8(rnum)
print
sys.stdout.write(''.join(rbytes))
print
print
return keystimes
def gen_user_random():
来自四个有机进口包装8
导入时间,sys
打印“嘿,用户,开始敲击键盘,以产生一些随机性。”
按键次数=[]
lasttime=无
而len(按键次数)<20:
key=getch()
timenow=(time.time()+time.clock())
如果上次:
timesince=timenow lasttime
附加(int(timesince*1000000000000000))
lasttime=timenow
打印“看看你做的这个讨厌的随机数字!”
rnum=int(“”.join([str(x)表示键时间中的x]))
打印rnum
打印“天哪,这是它制作的一组讨厌的字节!”
红细胞=pack8(rnum)
打印
sys.stdout.write(“”.join(rbytes))
打印
打印
返回键次数
这会产生一些随机性
pack8只接受任意长度的整数,并以256为基数以字节序列的形式输出。我不认为这是明确的“点击键”类型,但PGP/GPG在键创建期间的消息中指出“键盘和鼠标”输入用于熵。Ok。也许是我梦到了那部分。我想要的是“击打键盘”类型的东西。我不知道,也许我错了P@L0j1k顺便说一句,我喜欢你的网站。特别是美学。神圣的烟。我会在你身上花很多时间。太棒了。