hashlib

news/2024/11/18 21:27:03/文章来源:https://www.cnblogs.com/ggsdddup/p/18553689
# hash
# hash() 将数据转换成一个数字的算法
"""在同一次执行过程中,对同一个可hash的值进行计算得到的值是相同的,类似内存地址"""
print(hash('123')) # 6690882297275263703
print(hash("123")) # 6690882297275263703
a = '123'
b = '123'
print(hash(a)) # 6690882297275263703
print(hash(b))# 6690882297275263703  a、b hash值相同import hashlib
# hashlib
"""
1、提供多种算法: 相同数据用相同算法计算结果相同:
hashlib.md5()  可被撞库、暴力破解,定长32位16进制
hashlib.sha1()  sha算法集数字越大计算量越大,越安全
2、只能加密,不可逆进行解密;
3、算法传参只能接受bytes类型;
"""
md5_obj1 = hashlib.md5()
md5_obj1.update(b'abc') # 注意传参是bytes类型
print(md5_obj1.hexdigest()) # 900150983cd24fb0d6963f7d28e17f72

md5_obj2 = hashlib.md5('key'.encode('utf8') # 加盐,字符串可以是任意签名
md5_obj2.update(b'abc')
print(md5_obj2.hexdigest()) # 52878f125814206651a24111280ec873# 示例
def login(u_name, u_pwd):key = u_name # 动态加盐,提高安全性md5_pwd = hashlib.md5(key.encode('utf8))
    md5_pwd.update(u_pwd)md5_pwd_str = md5_pwd.hexigest()with open('user_info.txt') as f:for line in f:name, pwd = line.split(',')if name.strip() == u_name and pwd.strip() == md5_pwd_str:print('登录成功')breaklogin('王五', 'abc')#对比文件md5值,可用于校验文件一致性
def calculate_hash(file_path):with open(file_path) as f:md5_obj3 = hashlib.md5()file_size = os.path.getsize(file_path)while file_size > 0:context = f.read(1024) # 大文件分批读取md5_obj3.update(context.encode('utf8')) # hashlib.md5 支持多段数据更新file_size -= 1024return md5_obj3.hexdigest() # 文件的hash值改变说明文件有改动

f1 = 'user_info.txt'
print(calculate_hash(f1))
user_info.txt
张三,52878f125814206651a24111280ec873
李四,52878f125814206651a24111280ec873
王五,f8e8f25285b9f61b56bdf7bd5c2c8f9f

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/836392.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CUBEMX配置

遥控器配置 cubemx配置在 Connectivity 标签页下将 USART3 打开,将其 Mode 设置为 Asynchronous 异步通讯方式将其波特率设置为 100000,数据帧设置为9位数据位(实测8位有错误),单校验位,1 位停止位接着开启USART3 的 DMA 功能,在 USART3 下找到 DMA Settings 标签呀,在 …

GPR模型的一些高斯原理介绍

一、几个概念区分:高斯的几个概念:高斯分布(Gaussian Distribution):高斯分布是统计学中最常见的概率分布之一,也称为正态分布。它具有钟形曲线的形状,由两个参数决定:均值(mean)和方差(variance)。 高斯分布在自然界和工程应用中经常出现,其形状由均值和方差决定…

20222411 2024-2025-1 《网络与系统攻防技术》实验六实验报告

1.实验内容 1.1 实践内容 (1)前期渗透 ①主机发现(可用Aux中的arp_sweep,search一下就可以use) ②端口扫描:可以直接用nmap,也可以用Aux中的portscan/tcp等。 ③选做:也可以扫系统版本、漏洞等。 (2)Vsftpd源码包后门漏洞(21端口) 漏洞原理:在特定版本的vsftpd服务…

如何控制java虚拟线程的并发度?

jdk 21中的虚拟线程已经推出好一段时间了,确实很轻量,先来一段示例: 假如有一段提交订单的业务代码:1 public void submitOrder(Integer orderId) { 2 sleep(1000); 3 System.out.println("order:" + orderId + " is submitted");…

保险行业客户服务优化:客户运营知识库的实战应用

在保险行业,客户服务优化是提升客户满意度、增强企业竞争力的关键。客户运营知识库作为客户服务的重要支撑,其实战应用对于提升客户服务质量具有重要意义。本文将探讨保险行业客户服务优化的重要性、客户运营知识库的实战应用以及如何利用“HelpLook”工具实现客户服务优化。…

2024-11-18纯碱行情的解浪

图中蓝色线为调整浪ABC线 黄色线为5浪线 纯碱现在走的是ABC-C---->C-5---------5-4 总体来说是大级别的C浪,C浪的5浪,5浪的4浪回调,由于5浪的子2浪是都直的简单调整,5浪的一浪是启动三角形,趋势非常丝滑。这个5浪的子4浪会是大概率 的ABC调整,现在在走B浪还未完成,还…

2024-11-18 PVC分析

5182将是相当长时间的历史大底,这波不会破新低,以后N年也大概率不会破了。多头网格的好品种

ESP32蓝牙学习--蓝牙概念学习

前言 ESP32 是一款同时包含WIFI 蓝牙两者通信方式的芯片,之前学习过WIFI,这次学习一下其蓝牙功能,虽然之前有使用过其他的蓝牙芯片,但大多数都是使用应用层,很少去了解底层协议相关的知识,这一次从概念入手,细致了解一下蓝牙的相关概念,及ESP32相关的工程说明。 蓝牙的…

网络配置及进程-系统性能和计划任务

目录虚拟机联网 shell脚本实例 索引数组和关联数组,字符串处理,高级变量 进程管理 计划任务虚拟机联网 查看IP地址 #centos系列![root@localhost ~]# ifconfig ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.93.200 netmask 255.255.255.…

2024-11-18 大盘分析

牛市已经开始 首先上证季线级别4浪已经完美完成 本次上涨预计最高点位突破11000点再看商品市场 季线级别的3浪已经走完了前4浪,3-5已经启动,3浪的5浪 5of3 与3of3同样的强.3浪的上涨空间是100多一些,5浪可能 会更长。

【Project 2024软件下载与安装教程-亲测好用】

‌Project 2024的操作系统要求是Windows 10及以上版本‌。这意味着用户需要在Windows 10或更高版本的操作系统上安装和使用Project 2024‌1。 Project 2024是由Microsoft开发的一款高效实用的项目管理工具,旨在帮助项目经理发展计划、为任务分配资源、跟踪进度、管理预算和分析…

20222420 2024-2025-1 《网络与系统攻防技术》实验六实验报告

20222420 2024-2025-1 《网络与系统攻防技术》实验六实验报告 1.实验内容 (1)前期渗透①主机发现(可用Aux中的arp_sweep,search一下就可以use) ②端口扫描:可以直接用nmap,也可以用Aux中的portscan/tcp等 ③选做:也可以扫系统版本、漏洞等。(2)Vsftpd源码包后门漏洞(…