【问题标题】:Why does AES encryption in Crypto produce chinese characters为什么加密中的AES加密会产生汉字
【发布时间】:2020-04-13 23:09:20
【问题描述】:

我在 Python 中使用 Crypto 使用 AES 加密对我的文本文件进行了加密。当我在记事本中打开加密文件时,我看到一堆汉字和一些奇怪的符号。

为什么加密会一直产生汉字?

【问题讨论】:

  • 二进制数据。
  • 那不应该是显示各种字符吗?为什么大部分都是中国人?为什么不是数字、字母、不同的符号?
  • 可能是因为生成的字符范围恰好包含中文字符范围的UTF-8前缀。它有什么区别,它不打算作为文本阅读。
  • 记事本试图将字符解释为字符集,但由于数据没有意义而失败。一个好的编辑会告诉你这个问题。

标签: python encryption pycrypto


【解决方案1】:

它可能将数据解释为 UTF-8。 UTF-8 可以包含由 Unicode 联盟定义的任何字符或代码点。你得到很多“中文”字符是因为你很可能会为每个字符使用多个字节创建一个 UTF-8 转义,并且因为亚洲字符比西方字符多得多。

如果您想查看“文本”,那么您应该使用 base 64 进行编码。但是,文件完全可以作为包含任何字节值的二进制文件。因此,对于计算机/解密,您最好保留文件二进制文件。密文是不可读的;无论如何,绝对没有理由尝试“阅读”它。

【讨论】:

    猜你喜欢
    • 2015-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-03
    • 2011-09-27
    • 1970-01-01
    • 2011-09-23
    • 1970-01-01
    相关资源
    最近更新 更多