V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
holinhot
V2EX  ›  问与答

AES CBC IV 问题

  •  
  •   holinhot · 2022-12-04 20:39:25 +08:00 · 1117 次点击
    这是一个创建于 750 天前的主题,其中的信息可能已经有所发展或是发生改变。
    把随机 IV 存储到密文最前面是比较通常的做法,因为 IV 实际上的作用只是让相同明码生产出不同的密文,那如果是 HLS AES 128 CBC 文件这样做是不是就不行了? HLS 是不是不支持这种把 iv 存储到密文最前面的方式?

    `
    def encrypt(self, raw):
    raw = pad(raw, AES.block_size)
    iv = Random.new().read(AES.block_size)

    cipher = AES.new(self.key, AES.MODE_CBC, iv)
    return iv + cipher.encrypt(raw)

    def decrypt(self, enc):
    iv = enc[:16]
    cipher = AES.new(self.key, AES.MODE_CBC, iv)
    return unpad(cipher.decrypt(enc[16:]), AES.block_size)
    `
    6 条回复    2022-12-05 13:58:06 +08:00
    Cavolo
        1
    Cavolo  
       2022-12-04 21:26:13 +08:00
    存储随机 IV 在密文最前面是一种常见的加密做法,因为 IV 的作用实际上只是让相同的明文产生不同的密文。如果使用 HLS AES 128 CBC 文件,这种做法是可行的,并且 HLS 是支持将 IV 存储在密文最前面的。在上面给出的代码中,加密函数将 IV 随机生成,然后将其附加在加密后的密文前面,而解密函数则将 IV 从密文中分离出来,并使用它来解密密文。
    holinhot
        2
    holinhot  
    OP
       2022-12-04 21:37:37 +08:00
    @Cavolo 我写的逻辑是这样的,只是不确定标准的 HLS AES 128 CBC 解密逻辑是否是这样的。
    Rache1
        3
    Rache1  
       2022-12-04 22:09:46 +08:00   ❤️ 1
    @Cavolo 又抓住一个 AI
    44670
        4
    44670  
       2022-12-04 22:14:19 +08:00
    是的,HLS AES 128 CBC 文件不支持将 IV 存储在密文最前面的方式。HLS 通常采用在每个分片中使用相同的 IV 来保证分片之间的数据一致性。因此,将 IV 存储在密文最前面的方式不适用于 HLS 。
    anviod
        6
    anviod  
       2022-12-05 13:58:06 +08:00
    上面这两个都是 AI 无聊的回复.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2938 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 14:22 · PVG 22:22 · LAX 06:22 · JFK 09:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.