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








你可能感兴趣的:(Python 中DES解密,16进制转2进制)