ss1*_*111 1 python string hex for-loop
我有一个 32 位十六进制格式的加密密钥。但我只有 22 位。我必须找到明文。我的思考过程是进行蛮力攻击并找到其他 10 位。我也得到了密文。使用的加密是 128 位 ECB 模式下的 AES。我正在使用 Python,但我刚刚开始学习它,所以我还不是专家。
我的方法是采用 22 位密钥并连接其他 10 位,将其与 Ciphertext 和 Decrypt 一起输入 AES,以检查生成的短语之一是否类似于正确的句子。我唯一坚持的部分是生成 10 位十六进制字符串。
这是我想要的输出:
0000000000
0000000001
0000000002
...
000000000F
...
FFFFFFFFFF
Run Code Online (Sandbox Code Playgroud)
我可以用什么方法来做到这一点?我尝试制作字典并将数值分配给所有十六进制值,但我坚持如何编写一个循环,该循环可以将我想要的序列作为输出。
def gen_all_hex():
i = 0
while i < 16**10:
yield "{:010X}".format(i)
i += 1
for s in gen_all_hex():
print(s)
Run Code Online (Sandbox Code Playgroud)
结果:
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
...
Run Code Online (Sandbox Code Playgroud)
请注意,遍历所有 1,099,511,627,776 个值需要很长时间。
from itertools import product
print(map(''.join, product('0123456789ABCDEF', repeat=2)))
Run Code Online (Sandbox Code Playgroud)
repeat=2
用于演示目的,显然将其增加到 10。
对于 Python 3,如果您确实想查看打印的内容,请使用list(map(...))
.
输出:
['00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '0A', '0B', '0C', '0D', '0E', '0F', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '1A', '1B', '1C', '1D', '1E', '1F', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '2A', '2B', '2C', '2D', '2E', '2F', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '3A', '3B', '3C', '3D', '3E', '3F', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '4A', '4B', '4C', '4D', '4E', '4F', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '5A', '5B', '5C', '5D', '5E', '5F', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '6A', '6B', '6C', '6D', '6E', '6F', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '7A', '7B', '7C', '7D', '7E', '7F', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '8A', '8B', '8C', '8D', '8E', '8F', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '9A', '9B', '9C', '9D', '9E', '9F', 'A0', 'A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', 'A9', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'B0', 'B1', 'B2', 'B3', 'B4', 'B5', 'B6', 'B7', 'B8', 'B9', 'BA', 'BB', 'BC', 'BD', 'BE', 'BF', 'C0', 'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9', 'CA', 'CB', 'CC', 'CD', 'CE', 'CF', 'D0', 'D1', 'D2', 'D3', 'D4', 'D5', 'D6', 'D7', 'D8', 'D9', 'DA', 'DB', 'DC', 'DD', 'DE', 'DF', 'E0', 'E1', 'E2', 'E3', 'E4', 'E5', 'E6', 'E7', 'E8', 'E9', 'EA', 'EB', 'EC', 'ED', 'EE', 'EF', 'F0', 'F1', 'F2', 'F3', 'F4', 'F5', 'F6', 'F7', 'F8', 'F9', 'FA', 'FB', 'FC', 'FD', 'FE', 'FF']
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3182 次 |
最近记录: |