J'essaie de construire deux fonctions utilisant PyCrypto qui acceptent deux paramètres : le message et la clé, puis chiffrent/déchiffrent le message.
J'ai trouvé plusieurs liens sur le web pour m'aider, mais chacun d'entre eux a des défauts :
Celui-ci à codekoala utilise os.urandom, ce qui est déconseillé par PyCrypto.
De plus, la clé que je donne à la fonction n'est pas garantie d'avoir la longueur exacte attendue. Que puis-je faire pour que cela se produise ?
De plus, il existe plusieurs modes, lequel est recommandé ? Je ne sais pas quoi utiliser :/
Enfin, qu'est-ce que l'IV exactement ? Puis-je fournir un IV différent pour le cryptage et le décryptage, ou cela donnera-t-il un résultat différent ?
Modifier : Suppression de la partie code car elle n'était pas sécurisée.
17 votes
os.urandom est encouragé sur le PyCrypto site web. Il utilise la technologie de Microsoft CryptGenRandom qui est une fonction CSPRNG
6 votes
Ou
/dev/urandom
sur Unix2 votes
Juste pour clarifier, dans cet exemple phrase d'authentification est le clé qui peut être de 128, 192 ou 256 bits (16, 24 ou 32 octets).
0 votes
@Totem la page de manuel a depuis été mise à jour. Voir bugzilla.kernel.org/show_bug.cgi?id=71211 pour le fond, et aléatoire(7) ainsi que aléatoire(4) . Vous devriez utiliser
/dev/urandom
.15 votes
Il peut être utile de mentionner que PyCrypto est une projet mort . Le dernier engagement date de 2014. PyCryptodome semble être une bonne solution de remplacement
1 votes
Pycrypto n'a pas été mis à jour depuis de nombreuses années. Utilisez plutôt pycryptodome ou cryptography.
0 votes
Malheureusement, cette solution pycrypto ne fonctionne pas avec python 3.8 car
time.clock()
a été supprimé.1 votes
Pycrypto ne doit pas être utilisé, il n'est pas supporté et présente une vulnérabilité d'exécution de code à distance. cvedetails.com/vulnerability-list/vendor_id-11993/
0 votes
J'ai mis à jour la question en supprimant la partie code.
6 votes
Cette question est ancienne, mais j'aimerais signaler (à partir de 2020) que pycrypto est probablement obsolète et n'est plus supporté. En regardant leur page github ( github.com/pycrypto/pycrypto ), il semble que leur dernier engagement remonte à 2014. Je me méfierais de l'utilisation de logiciels de cryptographie qui ne sont plus en développement.