2010-09-28 6 views
3

J'ai besoin de crypter une petite chaîne en Python. Est-il possible d'utiliser une clé secrète pour chiffrer la chaîne? Existe-t-il un bon moyen de le faire et d'atteindre un niveau de chiffrement raisonnable en utilisant uniquement des bibliothèques Python? Pourriez-vous me montrer comment faire cela? Mes connaissances sur la cryptographie sont assez basiques.Crypter une chaîne en Python

Répondre

2

Je résolu ce problème en utilisant un lightweight XTEA library que j'ai trouvé sur ASPN. Il ne nécessite aucune bibliothèque Python supplémentaire et est assez simple à implémenter tout en atteignant un niveau de chiffrement resonable.

2

Jetez un oeil à py-bcrypt. Peut-être que cela répondra à vos besoins. Sur le site web:

py-bcrypt est un wrapper Python du code de hachage de mot de passe Blowfish OpenBSD, tel que décrit dans "un mot de passe futur Adaptabilité Scheme" par Niels Provos et David Mazières

2

KeyCzar a une belle interface et devrait répondre à vos exigences. Depuis la page d'accueil:

Keyczar est une boîte à outils cryptographique open source conçue pour faciliter et sécuriser l'utilisation de la cryptographie dans les applications par devlopers. Keyczar prend en charge l'authentification et le chiffrement à la fois symétrique et clés asymétriques

crypter = Crypter.Read("/path/to/your/keys") 
ciphertext = crypter.Encrypt("Secret message") 
0

J'ai récemment créé un morceau de code qui fait à peu près ce que vous dites. Il prend un mot de code tel que 'abc'int les valeurs (1, 2, 3) et les ajoute ensuite à chaque lettre du mot à chiffrer. Donc, si 'abc' était le mot de code et 'bcd' le texte à chiffrer. (1 + 2 = 3 2 + 3 = 5 et 3 + 4 = 7) de sorte que la sortie soit alors 'ceg'

codeword = input('Enter codeword : ') 
codeword = codeword.replace(" ", "") 

encrypt = input('Enter text to encrypt : ') 
encrypt = encrypt.replace(" ", "") 

j = 0 
for i in codeword: 
    print(chr(ord(encrypt[j])+ ord(codeword[j])-96)) 
    j+=1