【问题标题】:Where check string is AES crypt in C?C中的AES crypt在哪里检查字符串?
【发布时间】:2014-11-09 11:53:52
【问题描述】:

正确检查 char* 数组是 AES 128/192/256 crypt 还是 non crypt - 是文本? 请不要使用 OpenSSL。

【问题讨论】:

  • 你的意思是,如何区分密文和明文?如果是,那么这取决于明文的内容。如果是文本,则可以进行统计分析。
  • 如果您想要一个不涉及猜测的解决方案:不可能。 AES密文和例如。 (plain) 随机数是不可区分的(事实上,AES-CTR 在某些条件下是一个很好的 PRNG)
  • 这个问题毫无意义。请改写。
  • 好的,AES 字符串是 binsry 吗?我的蜜蜂是的。在哪里检查二进制或文本字符串?

标签: c encryption aes crypt


【解决方案1】:

tldr:如果您想要一个 100% 有效的解决方案,那是完全不可能的。

长版:

首先,停止思考“二进制与文本”。这不是它的工作原理。
AES密文当然是计算机中的二进制数据,但“文本”也是。

如果您想将 AES 密文与其他非 AES 数据区分开来,这是不可能的,因为:

  • AES 密文可以是一些不可读的垃圾,但它也可以是歌德的一首诗。
    每个可能的数据事物都可以是(“是”)具有某些密钥的某些明文的 AES 密文。
  • 非 AES 数据可能与 AES 数据一样是不可读的垃圾。 (伪)随机字节示例:具有正确输入的 AES 是出色的随机字节生成器。

反过来;如果您想将适当和理智的人类可读文本与其他事物区分开来,那是不可能的,因为:没有法律或您的计算机中的“文本”是什么。
如果要搜索英文字母,请考虑以下几点:

  • 如上所述,可读的单词也可以是 AES 密文。
  • 英文字母?德语、日语、古希腊语、俄语……怎么样?
  • 字母如何映射到字节? ISO88591、带有 BOM 的 UTF16LE、EBCDIC、自己的映射...?
  • MS Word *.doc 等文件格式怎么样?里面有文字 也是,但它是二进制“垃圾”数据。或压缩算法:Gzip, Rar 等不会使文本变得不那么理智。
  • 如果你最终提取了正确的字母,你怎么知道它是不是像“miodsjoiusdJf”这样的东西?识别单词及其含义本身就是一个非常大的话题,其中几乎所有内容都是猜测。

【讨论】:

    猜你喜欢
    • 2013-02-01
    • 2017-03-18
    • 1970-01-01
    • 2014-03-02
    • 1970-01-01
    • 1970-01-01
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多