加密的哈希算法,密码哈希算法
大家好,本文主要讲用python的hash函数加密密码。有兴趣的同学过来看看。如果对你有帮助,记得收藏。
今天,我将教你如何用哈希函数加密密码。
加密的密码很难反推~
普通加密:
首先调用函数hashlib
导入hashlib
然后使用哈希函数加密密码。
我在这里使用sha256进行加密。
再造一个密码出来
密码=wotemo666
接着用哈希函数对它进行加密
注意:这里要使用encode对password进行编码格式声明,不然会报错
hash _ password=hashlib . sha 256(password . encode( utf-8 ))。hexdigest()
打印(哈希密码)
运行这行代码输出加密的哈希值!
图中的字符串是对应于“wo temo 666”的哈希值
每个明文对应一个哈希值,但是一个哈希值对应无数个明文。
这就导致了哈希值的不可逆,让你的密码更安全~
下面是完整的代码
#首先调用函数hashlib
导入hashlib
#重新创建密码
密码=wotemo666
#用sha256加密密码
hash _ password=hashlib . sha 256(password . encode( utf-8 ))。hexdigest()
#输出相应的哈希值
打印(哈希密码)
高级加密:
如果你想让你的密码更安全,你应该给你的密码加点盐.
这里的加盐指的是在明文密码前或后插入一段随机字符串,然后被散列和加密。
这样得到的哈希值比较复杂,不容易被破解。
让我们实现它。
首先调用random函数随机生成“盐”
随机导入
这里我们用python中的string模块生成a ~ Z和0 ~ 9的所有字符。
调用string模块
导入字符串
String模块中的常量:
String.digits:数字0~9
String.ascii_letters:所有字母(大写和小写)
String.lowercase:所有小写字母
String.printable:可打印的字符串。
字符串.标点符号:所有标点符号
String.uppercase:全部大写字母
这里我们只需用到前两个digits和ascii_letters就可以了
Ps:如果想让密码更复杂,可以用标点生成所有标点,然后一起加到盐里。
这里我们使用while和random函数随机生成长度可控的salt。
首先,创建一个激活while的变量和一个存储salt的空白字符串。
活动=0
盐=
然后用while生成盐。
当激活10:时
#激活时激活
# 这里生成了一个长度为20的盐
# 想要生成多长的盐,就将示例中的10改为期望长度的一半
# 但这里的值最好是整数
salt_one = random.choice(string.digits)
# salt_one生成一个随机的数字
salt_two = random.choice(string.ascii_letters)
# salt_two生成一个随机的字母(区分大小写)
salt = salt_one + salt_two
#salt是它们的加和,这也就是为什么前面要减半
salts += salt
# 然后将加和后的值附加到刚才创建的空白字符串中
active += 1
# while函数基本用法我就不多说了
这样盐就生成出来啦,如图:
接下来,我们将盐附加到明文密码上
after_salt_password = salts + password# 盐的前后顺序无所谓,password为你的密码
然后,我们再调用hashlib生成哈希值
这里的操作就和前面的一模一样了,唯一不同的是密码加盐了
# 首先调用函数hashlibimport hashlib
# 再造一个密码出来
password = wotemo666
# 然后加盐
after_salt_password = salts + password
# 用sha256对password进行加密
hash_password = hashlib.sha256(after_salt_password.encode("utf-8")).hexdigest()
加盐后的哈希值就更为复杂了
下面是完整的代码
# 调用random, string, hashlib函数import random
import string
import hashlib
# 初始化
active = 0
salts =
while active < 10:
# 用active激活while
# 这里生成了一个长度为20的盐
# 想要生成多长的盐,就将示例中的10改为期望长度的一半
# 但这里的值最好是整数
salt_one = random.choice(string.digits)
# salt_one生成一个随机的数字
salt_two = random.choice(string.ascii_letters)
# salt_two生成一个随机的字母(区分大小写)
salt = salt_one + salt_two
#salt是它们的加和,这也就是为什么前面要减半
salts += salt
# 然后将加和后的值附加到刚才创建的空白字符串中
active += 1
# while函数基本用法我就不多说了
password = wotemo666
# 然后加盐
after_salt_password = salts + password
# 用sha256对password进行加密
hash_password = hashlib.sha256(after_salt_password.encode("utf-8")).hexdigest()
# hash_password就是输出的哈希值
print(hash_password)
你学会了吗?
到此这篇关于用python的哈希函数对密码加密的文章就介绍到这了,更多相关python哈希函数加密内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。