Python - 生成十六进制值的所有组合

标签 python string for-loop hex

我有一个 32 位十六进制格式的加密 key 。但我只给了 22 位。我必须找到明文。我的思考过程是进行暴力攻击并找到其他 10 位。我也得到了密文。使用的加密是 128 位 ECB 模式下的 AES。我正在使用 Python,但我才刚刚开始学习它,所以我还不是专家。

我的方法是采用 22 位 key 并连接其他 10 位,将其与密文一起输入 AES,然后解密以检查生成的短语之一是否类似于正确的句子。我唯一坚持的部分是生成 10 位十六进制字符串。

这是我想要的输出:

0000000000
0000000001
0000000002
...
000000000F
...
FFFFFFFFFF

我可以使用什么方法来做到这一点?我尝试制作一个字典并为所有十六进制值分配数值,但我仍然坚持如何编写一个循环来给出我想要的序列作为输出。

最佳答案

def gen_all_hex():
    i = 0
    while i < 16**10:
        yield "{:010X}".format(i)
        i += 1

for s in gen_all_hex():
    print(s)

结果:

0000000000
0000000001
0000000002
0000000003
0000000004
0000000005
0000000006
0000000007
0000000008
0000000009
000000000A
000000000B
000000000C
000000000D
000000000E
000000000F
0000000010
0000000011
0000000012
0000000013
0000000014
0000000015
0000000016
0000000017
0000000018
0000000019
000000001A
...

请注意,遍历所有 1,099,511,627,776 个值需要很长时间。

关于Python - 生成十六进制值的所有组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40662084/

相关文章:

python - 在 jupyter notebook 中显示大字体的 Pandas 数据框

Java、字符串差分算法

python - UnicodeEncodeError - 在 Spyder 中有效,但从终端执行时无效

r - 如果for循环中发生错误,如何更改值?

python - Tensorflow SxN矩阵乘以SxD矩阵输出SxNxD数组

python - Flask 的请求和基本分析信息

python - 以编程方式在 matplotlib 中增长一个数字

string - 终端查找命令 : Manipulate Output String

php - 有什么方法可以在 php 中为十进制数运行 for 循环吗?

javascript - 按升序对本地存储分数进行排序