根据类似英语的字符串对字符串进行评分

Set*_*eth 12 c python cryptography cryptanalysis

我不确定如何确切地说出这个问题,所以这是一个例子:

string1 ="THEQUICKBROWNFOX"string2 ="KLJHQKJBKJBHJBJLSDFD"

我想要一个将string1高于string2和其他一百万个乱码字符串的函数.请注意缺少空格,因此这是逐字符功能,而不是逐字逐句.

在90年代,我在Delphi中编写了一个三元组评分函数,并使用来自Huck Finn的三元组填充它,我正在考虑将代码移植到C或Python或将其插入一个独立的工具,但必须有更有效的方法目前为止.我会这样做数百万次,所以速度很快.我尝试了Reverend.Thomas Beyse()python库并使用一些全部大写字符串训练它,但它似乎需要单词之间的空格,因此返回得分[].我发现了一些马尔可夫链库,但它们似乎也需要在单词之间留出空格.虽然从我对他们的理解,我不明白为什么会这样......

无论如何,我做了很多密码分析,因此将来使用空格和标点符号的评分函数会有所帮助,但是现在我只需要ALLCAPITALLETTERS.

谢谢您的帮助!

R..*_*R.. 9

我将从一个简单的概率模型开始,给出前一个(可能是空的,在单词的开头)字母,每个字母的可能性.您可以基于字典文件构建它.然后,您可以将此扩展为使用2或3个前一个字母作为上下文,以在初始模型不够好时调整概率.然后乘以所有概率以获得单词的分数,并且可能取第N个根(其中N是字符串的长度),如果要对结果进行标准化,以便可以比较不同长度的单词.