0
我想從密碼文本替換爲純文本。但是可以有n!可能其中n是字符如何編碼替換置換
例如數量
暗號:[ a, b, c, d ]
平原:[ x, y, z, m ]
比方說,我肯定組合的一個是正確的純文本。在這個例子中,我知道有4個!可能的明文,但我算算它的蟒蛇,因爲在我的真正的問題n爲10。
我要求的一段代碼或算法
我想從密碼文本替換爲純文本。但是可以有n!可能其中n是字符如何編碼替換置換
例如數量
暗號:[ a, b, c, d ]
平原:[ x, y, z, m ]
比方說,我肯定組合的一個是正確的純文本。在這個例子中,我知道有4個!可能的明文,但我算算它的蟒蛇,因爲在我的真正的問題n爲10。
我要求的一段代碼或算法
你需要做的信件頻率分析。閱讀這篇文章,它https://inventwithpython.com/hacking/chapter20.html
有源存在於蟒蛇頻率分析
一旦你實現從教程中的源代碼,然後你可以寫
def test_solution(cypher,plaintext,encrypted_text):
tab = string.transtab(cypher,plaintext)
decrypted = encrypted_text.translate(tab)
return (englishFreqMatchScore(decrypted),plaintext, decrypted)
tests = [test_solution(cypher,k,enc_text) for k in itertools.permutations(plain)]
print "SOLUTION:",max(tests)
注意,這裏假設明文會是英語......不同的語言的字母頻率會有所不同(我認爲至少)
不幸的是,這個問題是NP我很難......爲了找到最佳的解決方案,你必須探索整個解決方案空間(如N增加明文字母的長度,它變得非常困難......)
你的加密文本有多大?如果它只有10個字符,你會很困難 –
加密文本是270個字符長, – eneski