检查字符串是C中的AES crypt吗?

时间:2014-11-09 11:53:53

标签: c encryption aes crypt

在哪里正确检查char *数组是AES 128/192/256 crypt,还是非crypt?是文本? 不要使用OpenSSL,请

1 个答案:

答案 0 :(得分:0)

tldr:如果你想要一个100%的工作解决方案,这是完全不可能的。

长版:

首先,不要再考虑“二元与文本”。这不是它的工作方式。
AES密文肯定是计算机中的二进制数据,但“文本”也是如此。

如果你想区分AES密文和其他非AES数据,那是不可能的,因为:

  • AES密文可能是一些难以理解的谜语,但它也可能是歌德的一首诗。
    每个可能的数据事物都可以是(“是”)一个带有某些键的明文的AES密文。
  • 非AES数据可以是与AES数据一样多的不可读垃圾。 (伪)随机字节为例:具有适当输入的AES是一个优秀的随机字节发生器。

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

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