Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 人类语言测试算法_C#_Algorithm_Encryption - Fatal编程技术网

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