Basit Değiştirme Şifresinin Test Edilmesi
Bu bölümde, aşağıda verildiği gibi rastgele dizeler oluşturmaya yardımcı olan çeşitli yöntemler kullanarak ikame şifresini test etmeye odaklanacağız -
import random, string, substitution
def main():
for i in range(1000):
key = substitution.getRandomKey()
message = random_string()
print('Test %s: String: "%s.."' % (i + 1, message[:50]))
print("Key: " + key)
encrypted = substitution.translateMessage(message, key, 'E')
decrypted = substitution.translateMessage(encrypted, key, 'D')
if decrypted != message:
print('ERROR: Decrypted: "%s" Key: %s' % (decrypted, key))
sys.exit()
print('Substutition test passed!')
def random_string(size = 5000, chars = string.ascii_letters + string.digits):
return ''.join(random.choice(chars) for _ in range(size))
if __name__ == '__main__':
main()
Çıktı
Çıktıyı rastgele oluşturulmuş dizeler olarak gözlemleyebilirsiniz, bu da aşağıda gösterildiği gibi rastgele düz metin mesajları oluşturmaya yardımcı olur -
Test başarıyla tamamlandıktan sonra çıkış mesajını gözlemleyebiliriz Substitution test passed!.
Böylece, sistematik bir şekilde bir ikame şifresini kırabilirsiniz.