我想根据另一个key
来计算第10轮的key
,如果ikk
是一个字符串,它的效果非常好,那么如何将其转换为字符串?
def test():
##### ikk= '000102030405060708090a0b0c0d0e0f' ===> It works!!!
ikk= 000102030405060708090a0b0c0d0e0f
ik=str(ikk)
data = [re.findall('..', item) for item in key.split('\n')]
for item in data:
if item:
result = [int(x, 16) for x in item]
print(result)
result = keyScheduleRounds(result, 0, 10)
tt=''.join(["%02x"%d for d in result])
print(tt)
我发现错误:
ik= str(000102030405060708090a0b0c0d0e0f) ^
SyntaxError: invalid token
答案 0 :(得分:1)
如果ikk是十六进制数(看起来像),请尝试这种方式:ikk = 0x000102030405060708090a0b0c0d0e0f
。注意开头的0x
将告诉python这是一个十六进制数,而不是十进制数。
答案 1 :(得分:1)
设置ik:
ik= bytearray.fromhex("000102030405060708090a0b0c0d0e0f").decode()
这会将十六进制转换为字符串。 完整代码如下。
def test():
ik = bytearray.fromhex("000102030405060708090a0b0c0d0e0f").decode()
data = [re.findall('..', item) for item in key.split('\n')]
for item in data:
if item:
result = [int(x, 16) for x in item]
print(result)
result = keyScheduleRounds(result, 0, 10)
tt=''.join(["%02x"%d for d in result])
print(tt)