Python 中DES解密,16进制转2进制

接口调接口原来这么慢。


def hex2bin(hexdata):
    bindata = ''
    for i in range(0,len(hexdata),2):
        bindata += chr ((int(hexdata[i:i+2], 16)))
    return bindata

这是一个  十六进制字符串 转 二进制 的函数 。 过程是把 字符串 每两个分一组, 比如  F96D55011E7DF93EDD15476DEE374719分成 F9 6D 55 01 E7 等16组。

然后把每组 的十六进制 转化成 十进制, 

int(hexdata[i:i+2], 16)

比如 F9 转成 249

6D 转成109 等等 。

最后是将 这个数组再用ASCII,转化成字符 。这个时候 大于126 的 ,因为ASCII中没有 ,所以就会是 乱码,或者 看不见 。 别管他,照样拼接起来 ,然后拿去解密。


所以 F96D55011E7DF93EDD15476DEE374719 这一串 其实是 可视化 的密文 ,原来的密文不是样的。 所以必须 还转回 不可视,这样才能下一步解密。


加密解密用的是 DES 算法。 在Python 中 安装一个 包之后 ,实际代码就两行 。


        k=des("my key",ECB,"\0\0\0\0\0\0\0\0",pad=None,padmode=0)
        mobile = k.decrypt(content,padmode=0)


变量content 中是 不可见的密文 。 k=des()   这个函数 返回的 k等于 加密器 ,加密解密都靠它了 ,它的参数是 第一个 密钥key ,第二个是模式 比如我是 ECB的, 后面几个参数 没用到 。需要的话自己看 文档 。

调用 d.decrypy()  就解密了。 返回就是 解密后的  原文了。 

需要安装的是 pyDes

在调用函数之前需要


from pyDes import *


这个包也很好安装 下载地址 http://sourceforge.net/projects/pydes/  只有13K。

http://pan.baidu.com/s/1jGklKxw 我放在云盘里了。


解压,安装就可以了 ,解压后有个README文件。 看一下 就能装上了 。








  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值