网页上解密后的key:
[-39, -128, -87, 94, 45, -34, 80, 77, -97, 48, -33, 90, 2, 51, 119, 98]
这组key 在创建 aes 解密对象的时候总是报错。
根据网上: 在源代码里面的是16进制的,而这里面的是十进制的,所以我们需要用到进制转换,包括后面我们还要再次转成ascii码.
代码如下:
def get_asc_key(key):
'''
获取密钥,把16进制字节码转换成ascii码
:param key:从网页源代码中获取的16进制字节码
:return: ascii码格式的key
'''
# 最简洁的写法
# asc_key = [chr(int(i,16)) for i in key.split(',')]
# 通俗易懂的写法
key = key.split(',')
asc_key = ''
for i in key:
i = int(i, 16) # 16进制转换成10进制
i = chr(i) # 10进制转换成ascii码
asc_key += i
return asc_key
请问下, 这组 key 是有什么问题吗
这组key 看着是没问题的, 它是 int8array, 有正负号, 我们需只要将他转换成 uint8array 就可以了,
let arr = [-39, -128, -87, 94, 45, -34, 80, 77, -97, 48, -33, 90, 2, 51, 119, 98] ; // 这里 简化写的, 其实是个int8array的数组
// 转换成无符号的 uint8array
arr = new Uint8Array(arr);
// 现在就可以拿去解密了
总结: 注意 array 的类型.