J'ai un fichier appelé plain.txt. A l'intérieur du fichier que j'ai:Pourquoi le chiffrement AES de la même chaîne avec la même clé est-il toujours différent?
Hello Hello Hello Hello
J'utilise cette commande pour chiffrer:
openssl enc -aes-128-cbc -salt -k "Hello" -in plain.txt -out encrypted.bin
Puis-je imprimer la valeur chiffrée comme ceci:
buff = open("encrypted.bin")
cipher = buff.read()
buff.close()
print b64encode(cipher)
Mais il est toujours différent valeur. Le chiffre ne devrait-il pas toujours être le même? J'utilise le même fichier et le même mot de passe pour le crypter. Voici mes sorties de terminal:
Richard-Knops-MacBook-Pro:python_test richardknop$ openssl enc -aes-128-cbc -salt -k "Hello" -in plain.txt -out encrypted.bin
Richard-Knops-MacBook-Pro:python_test richardknop$ python test.py U2FsdGVkX1+AmoQiIkYAxIYanLr/kbjMfEJPPLfeE/wtyxScvAKzb7K38ZxoI097
Richard-Knops-MacBook-Pro:python_test richardknop$ openssl enc -aes-128-cbc -salt -k "Hello" -in plain.txt -out encrypted.bin
Richard-Knops-MacBook-Pro:python_test richardknop$ python test.py U2FsdGVkX19vPD+OoiK7iSgYJiPMxuKGNWWrLlfBS0c3yCJkuv7QIBGEo2Q86UsV
Richard-Knops-MacBook-Pro:python_test richardknop$ openssl enc -aes-128-cbc -salt -k "Hello" -in plain.txt -out encrypted.bin
Richard-Knops-MacBook-Pro:python_test richardknop$ python test.py U2FsdGVkX1+3I8EC7u3lrcVPyD/JV12NAecWvTPXGga0Nh2cwqLAtGCDhLK6MI9g
Richard-Knops-MacBook-Pro:python_test richardknop$
En gros, le texte chiffré doit toujours regarder comme une sortie aléatoire. Si ce n'est pas le cas, cela laisse échapper des informations. Dans ce cas, vous pouvez voir si un cryptage avec le même mot de passe commence par une valeur identique précédemment cryptée. Imaginez la conversation suivante: êtes-vous général BadEncryption? Réponse chiffrée: "oui" Devrions-nous attaquer à l'aube? Réponse chiffrée: "oui" Donc l'ennemi voit les messages cryptés mais identiques et commence à manoeuvrer les obusiers. –