在Python中将十六进制字符串转换为矩阵形式

时间:2017-11-26 10:53:24

标签: python cryptography aes

我有一个十六进制字符串a = 54776f204f6e65204e696e652054776f 我希望它像这样的矩阵形式:

s = [[54, 4f, 4e, 20],
     [77, 6e, 69, 54],
     [6f, 65, 6e, 77],
     [20, 20, 65, 6f]]

我该怎么做?

有关更多说明:我正在编写AES加密和解密程序。这是第一部分,明文转换为十六进制,然后转换为状态(4x4矩阵)。

2 个答案:

答案 0 :(得分:3)

这应该有效:

import numpy as np

a = '54776f204f6e65204e696e652054776f'
n = 2
x = [a[i:i+n] for i in range(0, len(a), n)]

my_matrix = np.array(x).reshape(4, 4).T

print(my_matrix)


[['54' '4f' '4e' '20']
 ['77' '6e' '69' '54']
 ['6f' '65' '6e' '77']
 ['20' '20' '65' '6f']]

答案 1 :(得分:0)

这是我能想到的最简单的方法:

module-info.java