python hashlib_python之hashlib模块

python hashlib_python之hashlib模块hashlib模块是python内置的摘要算法。hashlib有两种调用方式:第一种是hashlib.new方法new(name,data=b‘‘,**kwargs)-returnsanewhashobjectimplementingthegivenhashfunction;initializingthehashusingthegivenbinarydat…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

hashlib模块是python内置的摘要算法。

hashlib有两种调用方式:

第一种是hashlib.new方法

new(name, data=b‘‘, **kwargs) – returns a new hash object implementing the given hash function; initializing the hash using the given binary data.

importhashlib

md5obj= hashlib.new(“md5”, b‘alex3714‘)

md5obj.hexdigest()

第二种是直接创建被允许的的算法

Named constructor functions are also available, these are faster than using new(name):

md5(), sha1(), sha224(), sha256(), sha384(), sha512(), blake2b(), blake2s(), sha3_224, sha3_256, sha3_384, sha3_512, shake_128, and shake_256.

More algorithms may be available on your platform but the above are guaranteed to exist. See the algorithms_guaranteed and algorithms_available attributes to find out what algorithm names can be passed to new().

importhashlib#将一个字符串进行摘要运算,拿到一个固定的值;,包含了多中加密算法

md5obj = hashlib.md5() #摘要

md5obj.update(b‘alex‘) #要加密的字符串的字节

md5obj.update(b”3714″) #要加密的字符串的字节#多次update是拼接到一起的,再进行hexdigest(),结果和一次update的时一样的#md5obj.update(b‘alex3714)

md5obj.hexdigest() #转成16进制,加密结果是32位

用户名与密码加密:

名词:撞库,根据输入和摘要算法的结果来验证输入与存储的加密算法结果的一致性。

加盐,通过加入随机字符串来防止撞库。

对用户名和密码加密,通常会进行加盐:

1.根据用户名生成随机字符串

2.将该随机字符串与密码拼接在一起,进行摘要算法,得到最后的密码加密结果

importhashlib, random

l1= list(range(48, 58))

l2= list(range(65, 91))

l3= list(range(97, 123))

l1.extend(l2)

l1.extend(l3)

username= “alex”passwd= “alex3714”

#根据用户名生成随机字符串

lis = “”

for i in range(16):

v= random.randint(0, len(l1)-1)

lis+=chr(l1[v])

passwd+=lis

md5= hashlib.new(“md5″, bytes(passwd, encoding=”utf8”))

passwd=md5.hexdigest()

user=dict(

username=username,

user_string=lis,

passwd=passwd,

)print(user)#{‘username‘: ‘alex‘, ‘user_string‘: ‘MnkCViH3avdDYp3U‘, ‘passwd‘: ‘35a5a0e38ea22720a78d594d8f02a021‘}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/227276.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 运维面试题整理

    运维面试题整理文章目录原题前言1.Nginx反向代理配置,此类urlwww.abc.com/refuse,禁止访问,返回4032.如何使用iptables将本地80端口的请求转发到8080端口,当前主机IP为192.168.16.1,其中本地网卡eth0:3.如何查看Linux系统当前的状态,cpu内存的使用情况及负载4.nginx如何重定义或者添加发往后端服务器的请求头5.编写shell脚本,将当前目录下大于10K的文件转移到/tmp目录下6.写出你所了解的门户网站的服务架构,可用什么方式实现的高可用、负

    2022年6月11日
    28
  • ubuntu 下 vlc ,smplayer 播放电影时字幕乱码解决方法

    ubuntu 下 vlc ,smplayer 播放电影时字幕乱码解决方法自:http://blog.sina.com.cn/s/blog_70545bad01015ky1.htmlubuntu下vlc,smplayer播放电影时出现乱码,令人头疼的很,不知道该怎么办,网上查了一些方法,但是没有一个能成功的,也许是我的方法不正确,没办法,只能将就看一下英文字幕,或者有时候看不懂的时候干脆切换到win7底下看,但这终究不是解决的方法,从网上查了很多方法,但是

    2022年7月11日
    28
  • JS中automation服务器不能创建对象

    JS中automation服务器不能创建对象今天看到 CSDN 上斌哥的 Blog 于是写了段 JS 脚本 用 QTP 执行 JS 代码的 但是提示 automation 服务器不能创建对象 问题 上网搜索 并且按照方法解决问题了 于是拷贝解决方法记录下来 1 如果是 Scripting FileSystemOb FSO 文本文件读写 被关闭了 开启 FSO 功能即可 在 运行 中执行 regsvr32scrr dll 即可 2 安全模式设置成 中

    2025年11月10日
    2
  • java 当前时间格式化(java格式化数字)

    实现日期的格式化,需要用到类:java.text.DateFormatDateFormat没有可以直接使用的构造函数,一般使用DateFormate的子类—java.text.SimpleDateFormat完成构造.publicSimpleDateFormat(Stringpattern)测试代码importjava.text.DateFormat;importjava.text….

    2022年4月10日
    143
  • C语言 n*n矩阵求值及求逆矩阵[通俗易懂]

    求出矩阵的值以及输出逆矩阵,英语不好,略拗口。上代码:#include#include#includeintmap1[110][110],i,j,k,l,m,n,p,vis[110][110],num;intjust[110][110];intjust2[110][110];voidprint(intmap[][110],intn)//打印矩阵{ intj;

    2022年4月13日
    143
  • mac java 配置环境变量配置_Mac 配置环境变量的方法

    mac java 配置环境变量配置_Mac 配置环境变量的方法一、单个环境变量的配置1、在英文输入法的状态下,按键盘“Ctrl+空格”组合键,调出Spotlight搜索(如果电脑右上角有放大镜的图标直接点击就可以)2、在Spotlight里输入终端(或者输入ter),点击enter即可打开终端3、以maven为例前提:1)先在命令行下敲:vi.profile(也可以是vi~/.profile这个是配置你自己当前用户的环境变量,别的用…

    2022年6月16日
    31

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号