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‘}

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 本地Mysql忘记密码的修改方法(windows)

    本地Mysql忘记密码的修改方法(windows)你是否有忘记密码的尴尬你是否有连Mysql的安装路径都忘了的尴尬别问我是怎么知道的,哈哈哈话不多说,步入正题吧!如果你记得mysql的安装路径的话,直接跳过步骤1231.键盘Windows+R,输入services.msc然后回车;2.找到Mysql,右键Mysql找到属性,打开就能看到可执行文件的路径了;PS:可以切换到大写,然后一直按MMM…(祖传妙方)3.进入bin目录下,按住shift+鼠标右键,点击打开“在此处打开Powershe.

  • 服务器的cd驱动器怎么修改盘符,更改dvd驱动器盘符,cd驱动器盘符改「建议收藏」

    服务器的cd驱动器怎么修改盘符,更改dvd驱动器盘符,cd驱动器盘符改「建议收藏」有部分win7系统用户反映说,当他在电脑中安装了虚拟光驱之后,电脑就会产生好多个无效的驱动器盘符,所以就将要将它们删除掉,可以却发现右击的菜单中找不到删除选项,也无法弹出光驱,导致无法删除无效驱动器盘符,这要怎么办呢?接下来给大家分享一下Win7系统删除无效驱动器盘符右键没有删除选项要怎么解决吧!推荐:1、点击win7系统的开始菜单,右击计算机,选择管理选项卡,进入计算机管理;2、打开计算机管理后…

  • form layui vue 和_layui和vue的区别是什么?[通俗易懂]

    form layui vue 和_layui和vue的区别是什么?[通俗易懂]layui和vue的区别是什么?下面本篇文章给大家介绍一下layui和vue的区别。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。layuilayui(谐音:类UI)是一款采用自身模块规范编写的前端UI框架,遵循原生HTML/CSS/JS的书写与组织形式,门槛极低,拿来即用。其外在极简,却又不失饱满的内在,体积轻盈,组件丰盈,从核心代码到API的每一处细节都经过精心…

  • vue 中 Promise 使用方法

    vue 中 Promise 使用方法1.Promise基本概念:Promise是一个构造函数,所以可以new出一个Promise的实例;在Promise上有两个函数resolve(成功之后的回调函数)和reject(失败后的回调函数);在Promise构造函数的prototype属性上,有一个.then()方法。所以只要是Promise构造函数创建的实例,都可以访问到.then()方法;Promise表示一个一步操作,每当我们new一个Promise的实例,这个实例就代表具体的异步操作。Promise创建

  • 面向对象初探

    面向对象初探面向对象初探

  • sublime怎么运行php(sublime运行python)

    前言:我用的是phpstudy安装包,安装php环境,因为是个人PC也没什么敏感文件,所以用phpstudy安装环境是可以的。phpstudy存在安全问题,之前也讨论过了。我用的是sublime编辑器,美观,配置环境稍微有点烦。配置步骤下载、安装phpstudy官网安装时注意不要选择中文安装目录,否则报错,Apache无法启动。安装后找到目录php.exe的所在目录,复制这个路

发表回复

您的电子邮箱地址不会被公开。

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