использование DES/3DES с Python

каков лучший модуль / пакет в Python для использования des/3des для шифрования / дешифрование. мог кто-то обеспечивать пример для шифрования данных с des/3des на Python.

12
задан Daryl Spitzer 25 August 2010 в 17:55
поделиться

2 ответа

pyDes можно использовать как для DES, так и для 3DES. Пример использования:

from pyDes import *

data = "Please encrypt my data"
k = des("DESCRYPT", CBC, "\0\0\0\0\0\0\0\0", pad=None, padmode=PAD_PKCS5)
d = k.encrypt(data)
print "Encrypted: %r" % d
print "Decrypted: %r" % k.decrypt(d)
assert k.decrypt(d, padmode=PAD_PKCS5) == data

Альтернативой является Chillkat Python Encryption Library , которая поддерживает множество алгоритмов шифрования (включая DES и 3DES), но она не бесплатна. Пример использования:

crypt.put_CryptAlgorithm("des")
crypt.put_CipherMode("cbc")
crypt.put_KeyLength(64)
crypt.put_PaddingScheme(0)
crypt.put_EncodingMode("hex")
ivHex = "0001020304050607"
crypt.SetEncodedIV(ivHex,"hex")
keyHex = "0001020304050607"
crypt.SetEncodedKey(keyHex,"hex")
encStr = crypt.encryptStringENC("The quick brown fox jumps over the lazy dog.")
print encStr
decStr = crypt.decryptStringENC(encStr)
print decStr

В любом случае, я надеюсь, что вы знаете, что ни DES, ни 3DES в настоящее время не считаются особенно безопасными, есть много лучших альтернатив (AES в первую очередь, если вы хотите придерживаться стандартов, или Twofish, Blowfish и т. д. ...)

20
ответ дан 2 December 2019 в 05:40
поделиться

Вы можете использовать Python-оболочку M2Crypto для OpenSSL. У него есть преимущество в том, что он быстрый (такой же быстрый, как OpenSSL), но недостатком является ограниченность документации.

Вот пример из мой ответ на "Как шифровать 3DES в Python с помощью оболочки M2Crypto?"

with open(keyfile, 'rb') as f:
    key = f.read()
encrypt = 1
cipher = Cipher(alg='des_ede3_ecb', key=key, op=encrypt, iv='\0'*16)
ciphertext = cipher.update(plaintext)
ciphertext += cipher.final()
7
ответ дан 2 December 2019 в 05:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: