首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >结合使用DES/3DES和python

结合使用DES/3DES和python
EN

Stack Overflow用户
提问于 2010-03-13 03:33:12
回答 2查看 43.9K关注 0票数 13

在python中使用des /3des进行加密/decryption最好的模块是什么?谁能提供一个在python上用des/3des加密数据的例子?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-03-13 22:09:33

可用于DES和3DES。示例用法:

代码语言:javascript
复制
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

另一种选择是,它支持许多加密算法(包括DES和3DES),但它是而不是。示例用法:

代码语言:javascript
复制
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,等等)。

票数 21
EN

Stack Overflow用户

发布于 2010-08-26 01:54:35

您可以使用OpenSSLM2Crypto Python包装器。它的优点是速度快(和OpenSSL一样快),但缺点是文档有限。

下面是从my answer"How to 3DES encrypt in Python using the M2Crypto wrapper?的示例。“

代码语言:javascript
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2435283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档