如何在python中运行这个

如何在python中运行这个,python,Python,在这个网址上有一些代码。我想知道如何在python中运行它 #/usr/bin/env python #使用常用python模块的pbkdf2的简单实现。见RFC2898 #详情请参阅。基本上,它从密码和salt派生出密钥。 #(c)2004年马特·约翰斯顿 #本代码可自由使用、分发、重新授权和修改,用于任何目的 #目的。 #修订历史 #v0.1 2004年10月-首次发布 #v0.2 2007年3月8日-在Python 2.5中使用hashlib并使用 #v0.3“为正确的摘要尺寸,而不是始终

在这个网址上有一些代码。我想知道如何在python中运行它

#/usr/bin/env python
#使用常用python模块的pbkdf2的简单实现。见RFC2898
#详情请参阅。基本上,它从密码和salt派生出密钥。
#(c)2004年马特·约翰斯顿
#本代码可自由使用、分发、重新授权和修改,用于任何目的
#目的。
#修订历史
#v0.1 2004年10月-首次发布
#v0.2 2007年3月8日-在Python 2.5中使用hashlib并使用
#v0.3“为正确的摘要尺寸,而不是始终为20
#v0.4 2009年3月13日-在版权手册中提及分发和重新许可
导入系统
进口hmac
从binascii导入hexlify、unhexlify
从结构导入包
尝试:
#仅在Python2.5中
导入hashlib
sha=hashlib.sha1
md5=hashlib.md5
sha256=hashlib.sha256
除恐怖外:
#退路
进口沙
导入md5
#这就是你想说的。
def pbkdf2(密码、salt、itercount、keylen、hashfn=sha):
尝试:
#取决于hashfn是来自hashlib还是来自sha/md5
摘要大小=hashfn()。摘要大小
除类型错误外:
摘要大小=hashfn.digest大小
#l-要生成的输出块数
l=密钥/摘要大小
如果keylen%digest\u大小!=0:
l+=1
h=hmac.new(密码,无,hashfn)
T=“”
对于范围(1,l+1)内的i:
T+=pbkdf2_F(h,盐,itercount,i)
返回T[0:keylen]
def xorstr(a,b):
如果len(a)!=len(b):
升起“xorstr():长度不同”
ret=''
对于范围内的i(len(a)):
ret+=chr(ord(a[i])^ord(b[i]))
回程网
def prf(h,数据):
hm=h.copy()
hm.update(数据)
返回hm.digest()
#根据规范h是一个hmac,它是用
#密码,它将被复制()而不被修改。
def pbkdf2_F(h、盐、itercount、blocknum):
U=prf(h,盐+包装('>i',块数))
T=U
对于范围内的i(2,itercount+1):
U=prf(h,U)
T=xorstr(T,U)
返回T
def test():
#来自rfc3211的测试向量
密码='password'
盐=不牢固('123456787858563412')
password='所有n实体必须通过n-1实体与其他n实体通信'
itercount=500
凯伦=16
ret=pbkdf2(密码、salt、itercount、keylen)
hexret=''.join(映射(lambda c:'%02x'%ord(c),ret)).upper()
打印“密钥:%s”%hexret
打印“预期:6A 89 70 BF 68 C9 2C AE A8 4A 8D F2 85 10 85 86”
#来自植物学
密码=unexlify('6561696D72627A70636F7066275736171746B6D77')
expect='C9A0B2622F13916036E29E7462E206E8BA5B50CE9212752EB8EA2A4 AA7B40A4CC1BF'
salt=unexlify('45248F9D0CEBCB86A18243E76C972A1F3B36772A')
凯伦=34
itercount=100
ret=pbkdf2(密码、salt、itercount、keylen)
hexret=hexlify(ret).upper()
打印“密钥:%s”%hexret
打印“预期:%s”%expect
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
测试()
问题总结如下:


我想知道如何钓鱼以及如何获得这条鱼。

从术语中尝试执行[1][2]:

python pbkdf2.py
[1] 当然,这假设您已将文件命名为原始所有者<代码>pbkdf2.py


[2] 在运行之前,请确保您在文件的目录中。

从术语中尝试执行[1][2]:

python pbkdf2.py
[1] 当然,这假设您已将文件命名为原始所有者<代码>pbkdf2.py


[2] 在运行之前,请确保您在文件的目录中。

从术语中尝试执行[1][2]:

python pbkdf2.py
[1] 当然,这假设您已将文件命名为原始所有者<代码>pbkdf2.py


[2] 在运行之前,请确保您在文件的目录中。

从术语中尝试执行[1][2]:

python pbkdf2.py
[1] 当然,这假设您已将文件命名为原始所有者<代码>pbkdf2.py



[2] 在运行之前,请确保您在文件的目录中。

“我想知道如何用python运行它。”--如“我如何才能学会编写这样的代码?”或“请您解释一下这段代码?”或“我想在我的计算机上执行它,但我不知道如何执行,请帮助。”?我应该写得更清楚。我想知道如何用python执行这个脚本。我可以在终端上做一点,但还没有尝试过python。“我想知道如何在python中运行它。”——比如,“我如何才能学会编写这样的代码?”或者“请您解释一下这段代码?”或者“我想在我的计算机上执行它,但我不知道怎么做,请帮助。”?我应该写得更清楚。我想知道如何用python执行这个脚本。我可以在终端上做一点,但还没有尝试过python。“我想知道如何在python中运行它。”——比如,“我如何才能学会编写这样的代码?”或者“请您解释一下这段代码?”或者“我想在我的计算机上执行它,但我不知道怎么做,请帮助。”?我应该写得更清楚。我想知道如何用python执行这个脚本。我可以在终端上做一点,但还没有尝试过python。“我想知道如何在python中运行它。”——比如,“我如何才能学会编写这样的代码?”或者“请您解释一下这段代码?”或者“我想在我的计算机上执行它,但我不知道怎么做,请帮助。”?我应该写得更清楚。我想知道如何用python执行这个脚本。我可以在终端上做一点,但还没有尝试过python。我怀疑这并不是OP想要的。但就目前的问题而言,这个答案似乎就是它。@BrianCain是的,我知道你的意思,这似乎是唯一一种不用读懂他的心思就能回答的方法。确保你安装了python解释器,并在环境变量中列出:)所以我将所有脚本保存在一个文本文件中,打开终端“cd”转到该文件夹,然后输入python“nam”