查看: 758|回复: 1

[Python] 利用pyDes库实现DES解密

[复制链接]
发表于 2019-4-7 16:52:30 | 显示全部楼层 |阅读模式
再看这个主题之前希望大家先看一下我的另一篇文章 利用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进制来处理,很显然就解不出来了


执行结果:
795225ca9b99a3f7e4.png
很显然跟我们之前做加密的时候的字符串是一样的。
温馨提示:
1.如果您喜欢这篇帖子,请给作者点赞评分,点赞会增加帖子的热度,评分会给作者加学币。(评分不会扣掉您的积分,系统每天都会重置您的评分额度)。
2.回复帖子不仅是对作者的最好奖励,还可以获得学币奖励,请尊重作者的劳动成果,拒绝做伸手党!
3.发广告、灌水回复等违规行为一经发现直接禁言,如果本帖内容涉嫌违规,请点击论坛底部的举报反馈按钮,也可以在【投诉建议】板块发帖举报。
发表于 2019-4-14 01:20:31 来自手机 | 显示全部楼层
我有空用java试试能不能实现
关闭

论坛公告上一条 /2 下一条

快速回复 返回顶部 返回列表