C# 人类语言测试算法
假设我们有一个加密的字节流,其中有一个可疑的解密密钥。我想用密钥解密消息并验证结果 如何验证结果? 关于纯文本唯一已知的是它应该包含一个人类语言段落(一个或多个)。我们不能从这篇课文中作更多的假设 我想开发/使用一种算法来测试解密的输出,并预测解密是否成功 该算法必须适用于所有人类语言(不会针对一种语言)C# 人类语言测试算法,c#,algorithm,encryption,C#,Algorithm,Encryption,假设我们有一个加密的字节流,其中有一个可疑的解密密钥。我想用密钥解密消息并验证结果 如何验证结果? 关于纯文本唯一已知的是它应该包含一个人类语言段落(一个或多个)。我们不能从这篇课文中作更多的假设 我想开发/使用一种算法来测试解密的输出,并预测解密是否成功 该算法必须适用于所有人类语言(不会针对一种语言) 这可能吗?你怎么看?如果没有更多的假设,就无法判断ByTestStream是否包含人类语言的消息。首先,您绝对需要知道编码(或一些可能的编码) 那么,我99.9%确信,如果不使用某种词典,就没
这可能吗?你怎么看?如果没有更多的假设,就无法判断ByTestStream是否包含人类语言的消息。首先,您绝对需要知道编码(或一些可能的编码) 那么,我99.9%确信,如果不使用某种词典,就没有通用的方法来推断大量(例如)ASCII字符在任何人类语言中是否有意义。如果你能把它缩小到一个语言家族,也许你能发现语法结构——但我只是在猜测。即使有可能,设计启发式也不是一件小事
也就是说,我只能附和评论中的建议:使用维基百科!从中创建您自己的词典或在线使用它-无论哪种方式,我相信这都是您最好的选择。如果没有更多的假设,就无法判断ByTestStream是否包含人类语言的消息。首先,您绝对需要知道编码(或一些可能的编码) 那么,我99.9%确信,如果不使用某种词典,就没有通用的方法来推断大量(例如)ASCII字符在任何人类语言中是否有意义。如果你能把它缩小到一个语言家族,也许你能发现语法结构——但我只是在猜测。即使有可能,设计启发式也不是一件小事
也就是说,我只能附和评论中的建议:使用维基百科!从中创建您自己的词典或在线使用它-无论哪种方式,我相信这都是您最好的选择。如果没有更多的假设,就无法判断ByTestStream是否包含人类语言的消息。首先,您绝对需要知道编码(或一些可能的编码) 那么,我99.9%确信,如果不使用某种词典,就没有通用的方法来推断大量(例如)ASCII字符在任何人类语言中是否有意义。如果你能把它缩小到一个语言家族,也许你能发现语法结构——但我只是在猜测。即使有可能,设计启发式也不是一件小事
也就是说,我只能附和评论中的建议:使用维基百科!从中创建您自己的词典或在线使用它-无论哪种方式,我相信这都是您最好的选择。如果没有更多的假设,就无法判断ByTestStream是否包含人类语言的消息。首先,您绝对需要知道编码(或一些可能的编码) 那么,我99.9%确信,如果不使用某种词典,就没有通用的方法来推断大量(例如)ASCII字符在任何人类语言中是否有意义。如果你能把它缩小到一个语言家族,也许你能发现语法结构——但我只是在猜测。即使有可能,设计启发式也不是一件小事
也就是说,我只能附和评论中的建议:使用维基百科!从中创建自己的词典或在线使用——无论哪种方式,我相信这都是你最好的选择。你可以分析文本,然后计算字母频率。如果字母频率是图表的方式,你可以说加密出错了。如果你把它和空格的出现混为一谈,你就有了一个合理可靠的方法来判断加密是否成功
您可以分析文本,然后计算字母频率。如果字母频率是图表的方式,你可以说加密出错了。如果你把它和空格的出现混为一谈,你就有了一个合理可靠的方法来判断加密是否成功
您可以分析文本,然后计算字母频率。如果字母频率是图表的方式,你可以说加密出错了。如果你把它和空格的出现混为一谈,你就有了一个合理可靠的方法来判断加密是否成功
您可以分析文本,然后计算字母频率。如果字母频率是图表的方式,你可以说加密出错了。如果你把它和空格的出现混为一谈,你就有了一个合理可靠的方法来判断加密是否成功 第0步 解密密文(加密)字节数组以获得纯文本(解密)字节数组 如果使用经过身份验证的加密,则使用错误密钥解密将彻底失败 如果使用了正确的填充(PKCS#7/PKCS#5),则使用错误密钥解密将以非常高的概率失败,因为填充将无法正确解密 第一步 使用正确的字符编码将字节数组解码为字符数组和
DecoderExceptionFallback
(CodingErrorAction.REPORT
,Java)
如果解密的字节数组包含不代表有效字符的字节序列,则解码将失败。假设初始数据是相同编码中的正确文本,只有在使用错误密钥时,解密的字节数组才会包含无效的字节序列
步骤2
实际上,前两步将暴露w