Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.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中使用dictional恢复加密字_Python_Search_Encryption_Dictionary_Rsa - Fatal编程技术网

在python中使用dictional恢复加密字

在python中使用dictional恢复加密字,python,search,encryption,dictionary,rsa,Python,Search,Encryption,Dictionary,Rsa,我试图在Python中使用前向搜索字典攻击来恢复RSA加密的5个字符的单词,但遇到了困难。该字在2个24位块(3648141 5604637)中加密,并在最后一个块中填充空格 e = 5 n = 21508387 table = {} for ptext in range(65,90): ctext = pow(ptext,e,n) table[ctext] = ptext print table 我知道我需要做上述工作,以便它解密所有3个字符长的组合AAA AAAB

我试图在Python中使用前向搜索字典攻击来恢复RSA加密的5个字符的单词,但遇到了困难。该字在2个24位块(3648141 5604637)中加密,并在最后一个块中填充空格

e = 5
n = 21508387

table = {}
for ptext in range(65,90):
    ctext = pow(ptext,e,n)
    table[ctext] = ptext
    print table
我知道我需要做上述工作,以便它解密所有3个字符长的组合AAA AAAB。。。ZZA ZZB,等等,但我只解密单个字符A B C。。那么如何让它一次解密3个字符呢

我得到的打印输出是许多行,这些行的特征是{8521919L:65}{7688462L:668521919L:65} 但是我在结果中看不到我的块,我假设冒号的数字是ASCII

我能得到一些帮助吗,有什么建议吗?
谢谢

生成所有三个字母组合,将它们编码为整数,应用pow函数,在它们与加密邮件匹配时报告


迭代所有三个字母组合的最明显方法是使用三个嵌套循环,而不是您现在使用的循环。

pow函数已经应用于一个字母组合,但不确定如何迭代组合三次,因为使用以下方法不起作用e=11 n=22734533 table={}对于范围(65,90)中的ptext:ctext=pow(ptext,e,n)table[ctext]=ptext-for-ptext-in-range(65,90):ctext=pow(ptext,e,n)table[ctext]=ptext-for-ptext-in-range(65,90):ctext=pow(ptext,e,n)table[ctext]=ptext print table必须同时将其应用于所有三个字母的组合。否则,您将得到不同的结果。即,将三个字符转换为一个数字(一个“块”-加密按块进行!),然后对它进行编码。我如何只循环3次虽然在它到达pow之前,我对Python知之甚少,也没有被要求学习它,因为我正在做的工作重点是安全性嵌套三个循环在几乎任何语言中都是相同的。@Smush:我不确定我应该提到它,但是,
itertools
模块有一个
product
方法,这个方法稍微干净一些。但是我理解嵌套循环,你也应该理解。
{7688462L:668521919L:65}
是一个python dict,意思是:7688462L映射到66,8521919L映射到65。