PandaQk 2021-08-20 15:15 采纳率: 60%
浏览 169
已结题

M3u8 解密时, key取自 网页中十六进制的数组, 这组key是有问题吗?

网页上解密后的key:

img

[-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 的类型.

  • 写回答

2条回答 默认 最新

  • python收藏家 2021-08-20 15:40
    关注

    打印下循环输出的值看看,报啥错

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月20日
  • 修改了问题 8月20日
  • 修改了问题 8月20日
  • 修改了问题 8月20日
  • 展开全部

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么