Python MD5 简明教程
经常在工作中, 我们需要对一些私密内容进行校验, 不便明文传输, 最简单的办法就是将私密内容进行 MD5, 传输过程中仅传输 MD5 值就较为安全了.
下面是一个 Python 环境中一个简单的 MD5 示例:
from hashlib import md5
print md5("linuxcoming.com").hexdigest()
如果是在HTTP协议中传输, 最好是进行 Base64
操作, 避免传输过程中对一些 HTTP 协议敏感的一些字符错误的转义.
from hashlib import md5
import base64
print base64.b64encode(md5("linuxcoming.com").hexdigest())
上面还涉及到一个字符编码的问题, 上面我们使用的原始字符 "linuxcoming.com" 因为都是标准的 ascii
字符, 不存在字符特殊编码的问题,如果原始串中有一些非 ascii
字符, 需要按需进行编码转换, 这里以 utf-8
编码为例
from hashlib import md5
import base64
print base64.b64encode(md5("linuxcoming.com".encode("utf-8")).hexdigest())
因为目前计算机的计算能力有了极大的提升, 在极端情况下, 可能会出现部分被暴力破解的可能,因此比较简便高效的办法是对其进行多次加密, 这样被破解的可能性极大的降低.
from hashlib import md5
import base64
first = md5("linuxcoming.com".encode("utf-8")).hexdigest()
print md5(first.encode("utf-8")).hexdigest()
当然有一些常见的做法为了混淆原始内容, 会在原始内容中加入一些其他的字符, 以混淆原始字符的含义.
from hashlib import md5
import base64
salt = "fc5e038d38a57032085441e7fe7010b0"
print md5(("linuxcoming.com" + salt).encode("utf-8")).hexdigest()