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)
and*_*oke 10
对于python 2,你应该使用keyczar http://www.keyczar.org/
对于python 3,直到keyczar可用,我写了simple-crypt http://pypi.python.org/pypi/simple-crypt
自问题提出以来,事情发生了变化,我迟到了两年才回答这个问题.
请注意,此问题的先前答案使用弱密码(按今天的标准)并且没有任何关键强化.这里的两条建议可能更安全.
| 归档时间: |
|
| 查看次数: |
42881 次 |
| 最近记录: |