使用私钥在python中简单加密/解密lib

asc*_*d00 26 python encryption

是否有一种简单的方法来使用密钥加密/解密字符串.

像这样的东西:

key = '1234'
string =  'hello world'
encrypted_string = encrypt(key, string)
decrypt(key, encrypted_string)
Run Code Online (Sandbox Code Playgroud)

我找不到任何简单的事情.

aar*_*ing 24

http://www.dlitz.net/software/pycrypto/应该做你想要的.

取自他们的文档页面.

>>> from Crypto.Cipher import DES
>>> obj=DES.new('abcdefgh', DES.MODE_ECB)
>>> plain="Guido van Rossum is a space alien."
>>> len(plain)
34
>>> obj.encrypt(plain)
Traceback (innermost last):
  File "<stdin>", line 1, in ?
ValueError: Strings for DES must be a multiple of 8 in length
>>> ciph=obj.encrypt(plain+'XXXXXX')
>>> ciph
'\021,\343Nq\214DY\337T\342pA\372\255\311s\210\363,\300j\330\250\312\347\342I\3215w\03561\303dgb/\006'
>>> obj.decrypt(ciph)
'Guido van Rossum is a space alien.XXXXXX'
Run Code Online (Sandbox Code Playgroud)


Him*_*Das 24

pyDES是完全用python编写的DES和Triple-DES实现.

这是一个简单易用的示例,应该足够安全,以满足基本的字符串加密需求.只需将pyDES模块放在与程序相同的文件夹中并试用即可:

发件人的电脑

>>> from pyDES import *  # pyDes if installed from pip
>>> ciphertext = triple_des('a 16 or 24 byte password').encrypt("secret message", padmode=2)  #plain-text usually needs padding, but padmode = 2 handles that automatically
>>> ciphertext
')\xd8\xbfFn#EY\xcbiH\xfa\x18\xb4\xf7\xa2'  #gibberish
Run Code Online (Sandbox Code Playgroud)

收件人的电脑

>>> from pyDES import *
>>> plain_text = triple_des('a 16 or 24 byte password').decrypt(')\xd8\xbfFn#EY\xcbiH\xfa\x18\xb4\xf7\xa2', padmode=2)
>>> plain_text
"secret message"
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你!我一直在寻找一种纯 python 加密/解密方案(因此它实际上是可移植的),这是我偶然发现的唯一方案。 (2认同)

and*_*oke 10

对于python 2,你应该使用keyczar http://www.keyczar.org/

对于python 3,直到keyczar可用,我写了simple-crypt http://pypi.python.org/pypi/simple-crypt

自问题提出以来,事情发生了变化,我迟到了两年才回答这个问题.

请注意,此问题的先前答案使用弱密码(按今天的标准)并且没有任何关键强化.这里的两条建议可能更安全.