0
点赞
收藏
分享

微信扫一扫

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文件。 看一下 就能装上了 。









举报

相关推荐

0 条评论