hashlib加密
2017-11-16 本文已影响0人
伟大的洪立
根据加密是否可逆,分为单向加密和双向加密
- 单项加密
通过制定的算法,可以将明文->算法->密文
不可逆。
例如
用户注册时的登录密码:在注册时进行加密。 不允许通过解密查看明文密码。
- 双向加密
通过制定的算法:密文-->明文
通过制定的算法:明文->密文
- 对称加密(使用同一套密钥【加密算法】)
明文->加密算法A->密文
密文->加密算法A->明文
- 非对称加密 (使用不同的加密算法)
明文->加密算法A->密文
密文->加密算法B->明文
单向加密算法
- 数字指纹(单项散列加密算法----MD5)
import hashlib # 引入模块
a = hashlib.md5("admin".encode("utf-8")) # 一定要该编码,否则报错
a.hexdigest() # 查看加密的admin
image.png
-
加盐
image.png -
加密操作
1.确定目标字符
passwd = "12344"
2. 进行md5加密操作:被加密的字符串,要进行encode编码
p1 = hashlib.md5(passwd.encode("utf-8"))
3. 加盐值进行混淆
p1.updata("shuaibi".encode("utf-8"))
4. 得到加密后的密文数据
p2= p1.hexdigest()
print("明文数据 : %s" %passwd)
print("密文数据 : %s" % p2)
-
安全的hash加密算法(SHA)
image.png
sha1
用法与md5类似,也可以加盐值
-
加密步骤
# 1.通过sha512加密算法进行加密:单向安全HASH加密算法
_sha = hashlib.sha512(passwd.encode("utf-8"))
# 2.添加盐值进行混淆
_sha.update("192.168.10.110".encode("utf-8"))
# 3.得到加密的数据
_s = _sha.hexdigest()
print("SHA密文数据:%s" % _s)