再看这个主题之前希望大家先看一下我的另一篇文章 利用pyDes库实现DES的加密
不然的话可能这篇文章对于没有基础的读者来说读起来有些压力
DES的加密和DES的解密基本上的代码是差不多的,所以这里我介绍起来也会省略一部分在DES加密这篇文章中介绍过的一些内容
接下来步入正文:
我们首先来看一下代码
from pyDes import CBC,des,PAD_PKCS5
import binascii
KEY="hellomcs"
str="c7e92f31d088ccf5"
secret_key=KEY
iv=secret_key
d=des(secret_key,CBC,iv,pad=None,padmode=PAD_PKCS5)
k=d.decrypt(binascii.a2b_hex(str),padmode=PAD_PKCS5)
print(k)
第一步导入DES加解密所需要的模块
然后导入binascii(这个是为了能更好的显示结果不然是16进制不是ascii码)
key:密钥
str:已加密的字符串
然后为了方便给des()函数操作我们将KEY换了下名字换成了secret_key和iv
d=des( ):这里需要注意的是如果你在加密的过程中是用的CBC的模式的话解密的时候也是要用这个模式的,PAD_PKCS5也是要和加密的时候一样的
k=d.decrypt():解密函数,这里需要注意的是你需要加上binascii.a2b_hex(str),这是因为你str的值是经过转换之后的ascii码,如果不经过处理的话它会当作16进制来处理,很显然就解不出来了
执行结果:
很显然跟我们之前做加密的时候的字符串是一样的。
|