使用python之MD5进行加密

Python011

使用python之MD5进行加密,第1张

在许多接口,尤其涉及到金额的地方,都需要用加密算法数据进行加密。像密码、金额之类的,如果不做加密,被篡改数据,公司的损失会很大。

这里主要说MD5加密(即摘要算法),也就是采用哈希算法,将不定长度的内容转化为32位16进制固定长度的内容。前后台都使用这套算法,再将两者的加密数据比对,如果一致说明数据加密正确,否则数据可能出现篡改。

在pyhon里,可以导入hashlib进行加密,如下

方法一:

执行结果如下图:

方法二:

执行结果如下图:

python 中的md5加密及其实现

开发环境 :python3

用到的库:hashlib, random

md5加密,用到了hashlib库中的md5

random用来生成盐

题中所示代码中,python实现了计算空字符串的MD5值,并对MD5的值的十六进制的字符串所表示的字节进行BASE64处理。

不像Python内部有实现md5功能,根据ANSI C标准,C语言的标准库里是没有md5功能的;

但是RFC1231规定了MD5功能的C实现并提供了附件,可以直接用,也可以直接获取现成的实现,在编译链接时指定正确的.h头文件和.lib静态链接库文件;

这里我采取前者的做法(电脑上没有装VC,有VC就简单很多,使用的是minGW)大概六七百行代码左右。

然后这里展示不完,给个实现效果图

这是我整理的实现代码,其中BASE64部分使用了github上littlestar的b64.c,然后MD5计算部分直接参考了RFC1231标准的附录。RFC1231文件有计算方法

BASE64的编码原理