Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从击键中获取用户熵的最佳Python方法是la PGP?_Python_Pgp_Entropy - Fatal编程技术网

从击键中获取用户熵的最佳Python方法是la PGP?

从击键中获取用户熵的最佳Python方法是la PGP?,python,pgp,entropy,Python,Pgp,Entropy,有没有人记得通过敲击随机键来提示用户“产生一些熵” PGP会在收集信息时测量熵,用一个很酷的小进度条向用户指示,然后在内部对按键计时,进行一些处理,并将其用作某种事情的种子 我想制作一个在python中执行类似“熵收集”步骤的快速例程(控制台应用程序),但我对一些问题感到困惑: 最佳计时方法 收集单个击键的最佳方法 向用户显示酷进度条的最佳方法 关于处理步骤的想法,或PGP步骤的实际细节 在上述情况下,最好的方法是: 最紧最干净的代码 最精确的(如计时到皮秒或其他) 大多数pythonic/f

有没有人记得通过敲击随机键来提示用户“产生一些熵”

PGP会在收集信息时测量熵,用一个很酷的小进度条向用户指示,然后在内部对按键计时,进行一些处理,并将其用作某种事情的种子

我想制作一个在python中执行类似“熵收集”步骤的快速例程(控制台应用程序),但我对一些问题感到困惑:

  • 最佳计时方法
  • 收集单个击键的最佳方法
  • 向用户显示酷进度条的最佳方法
  • 关于处理步骤的想法,或PGP步骤的实际细节
  • 在上述情况下,最好的方法是:

    • 最紧最干净的代码
    • 最精确的(如计时到皮秒或其他)
    • 大多数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顺便说一句,我喜欢你的网站。特别是美学。神圣的烟。我会在你身上花很多时间。太棒了。