用python的哈希函数对密码进行加密
大家好,我是沃特陌
今天我将教大家如何用哈希函数将密码加密
加密后的密码是很难倒推的~
普通加密:
首先调用函数hashlib
1 | import hashlib |
然后使用哈希函数对密码进行加密
这里我使用sha256进行加密
再造一个密码出来
1 | password = 'wotemo666' |
接着用哈希函数对它进行加密
注意:这里要使用encode对password进行编码格式声明,不然会报错
1 | hash_password = hashlib.sha256(password.encode("utf-8")).hexdigest() |
运行这行代码输出的就是加密后的哈希值啦!!!
图中这行字符串就是 ‘wotemo666’ 对应的哈希值
每个明文对应一个哈希值,但一个哈希值却对应无数个明文
这就导致哈希值是不可逆的,这样,你的密码就更加安全啦~
下面是完整的代码
1 | # 首先调用函数hashlib |
进阶加密:
如果想让你的密码更加的安全,那就要给你的密码加点盐了
这里的加盐就是指在明文密码前或后插入一段随机字符串,然后再进行哈希加密
这样得出来的哈希值就更加的复杂,就更不容易被破解啦
下面我们来实现吧
首先调用random函数随机生成“盐”
1 | import random |
这里我们要用到python中的string模块生成a ~ Z和0 ~ 9的所有字符
调用string模块
1 | import string |
String模块中的常量:
string.digits:数字0~9
string.ascii_letters:所有字母(大小写)
string.lowercase:所有小写字母
string.printable:可打印字符的字符串
string.punctuation:所有标点
string.uppercase:所有大写字母
这里我们只需用到前两个digits和ascii_letters就可以了
ps:如果想密码更复杂一些可以使用punctuation生成所有标点,然后一同加入到盐中去
这里我们使用while和random函数随机生成可以控制长度的盐
先创建一个激活while的变量和一个储存盐的空白字符串
1 | active = 0 |
接着用while生成盐
1 | while active < 10: |
这样盐就生成出来啦,如图:
接下来,我们将盐附加到明文密码上
1 | after_salt_password = salts + password |
然后,我们再调用hashlib生成哈希值
这里的操作就和前面的一模一样了,唯一不同的是密码加盐了
1 | # 首先调用函数hashlib |
加盐后的哈希值就更为复杂了
下面是完整的代码
1 | # 调用random, string, hashlib函数 |
你学会了吗?
不懂的可以来我的个人博客留言
https://www.wotemo.com/
Thanks♪(・ω・)ノ