python中使用des / 3des进行加密/解密的最佳模块/包是什么。有人可以提供在 python 上使用 des/3des 加密数据的示例。
问问题
44601 次
2 回答
21
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 加密库,它支持很多加密算法(包括 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 等......)
于 2010-03-13T14:09:32.637 回答
7
您可以将M2Crypto Python 包装器用于OpenSSL。它的优点是速度快(与 OpenSSL 一样快),但缺点是文档有限。
这是我对“如何使用 M2Crypto 包装器在 Python 中进行 3DES 加密? ”的回答中的示例。
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()
于 2010-08-25T17:54:34.503 回答