美文网首页
Data must be aligned to block bo

Data must be aligned to block bo

作者: matthewfly | 来源:发表于2021-03-05 11:26 被阅读0次

    python 使用Crypto进行aes ECB模式加解密时,遇到解密出错。

    原因:进行加密的数据没有进行补位,数据长度必须是16的整数倍。

    解决:对原始数据进行填充:

    data = pad(str.encode(data), 16)
    

    或者 手写填充,但解码时也需要手动去除多余数据
    填充字符为需要填充的长度,解码时读取并从尾部去除:

    def _add_to_16(s):
      s = str.encode(s)
      k = 16
      pad_size = k - len(s) % k
      s += pad_size * bchr(pad_size)
      print(s)
      return s
    

    对应解码完后的结果r去除填充数据:

    r[:-ord(r[-1])]
    

    相关文章

      网友评论

          本文标题:Data must be aligned to block bo

          本文链接:https://www.haomeiwen.com/subject/amjrqltx.html