京公网安备 11010802034615号
经营许可证编号:京B2-20210330
来源:Python爬虫与数据挖掘
作者: 黄伟
在程序中我们经常可以看到有很多的加密算法,比如说MD5 sha1等,今天我们就来了解下这下加密算法的吧,在了解之前我们需要知道一个模块嘛就是hashlib,他就是目前Python一个提供字符加密的模块,它加密的字符类型为二进制编码,所以直接加密字符串会报错。
import hashlib string='任性的90后boy' #使用encode进行转换
sha1 = hashlib.sha1()
sha1.update(string.encode('utf-8'))
res = sha1.hexdigest() print("sha1采用encode转换加密结果:",res)
#使用byte转换为二进制
sha1 = hashlib.sha1()
sha1.update(bytes(string,encoding='utf-8'))
res = sha1.hexdigest() print("sha1采用byte转换的结果:",res)
可以使用下列这两种方法任意一种获取到hashlib中所有的散列算法集合:
import hashlib
a=hashlib.algorithms_available
b=hashlib.algorithms_guaranteed print(a) print(b)
下面我们挑选常用的集中算法来进行讲解。
MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。
MD5算法具有以下特点:
1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。
2、容易计算:从原数据计算出MD5值很容易。
3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。
MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。MD5是最常见的摘要算法,速度很快,生成结果是固定的128 bit字节,通常用一个32位的16进制字符串表示。
import hashlib
string='任性的90后boy' md5 = hashlib.md5()
md5.update(string.encode('utf-8'))#转码,update里的必须是字节型 res = md5.hexdigest() #返回字符型摘要信息 print(md5.digest())#返回字节型的摘要信息 print("md5加密结果:",res)
安全散列算法,SHA1的结果是160 bit字节,通常用一个40位的16进制字符串表示
import hashlib string='任性的90后boy' sha1 = hashlib.sha1()
sha1.update(string.encode('utf-8'))
res = sha1.hexdigest() print("sha1加密结果:",res)
安全散列算法
import hashlib string='任性的90后boy' sha224 = hashlib.sha224()
sha224.update(string.encode('utf-8'))
res = sha224.hexdigest() print("sha224加密结果:",res)
安全散列算法
import hashlib string='任性的90后boy' sha256 = hashlib.sha256()
sha256.update(string.encode('utf-8'))
res = sha256.hexdigest() print("sha256加密结果:",res)
安全散列算法
import hashlib string='任性的90后boy' sha384 = hashlib.sha384()
sha384.update(string.encode('utf-8'))
res = sha384.hexdigest() print("sha384加密结果:",res)
安全散列算法
import hashlib string='任性的90后boy' sha512= hashlib.sha512()
sha512.update(string.encode('utf-8'))
res = sha512.hexdigest() print("sha512加密结果:",res)
以上加密算法虽然依然非常厉害,但时候存在缺陷,即:通过撞库可以反解。所以,有必要对加密算法中添加自定义key再来做加密。
md5 = hashlib.md5()
md5.update('md5'.encode('utf-8'))
res = md5.hexdigest() print("普通加密:",res)
md51 = hashlib.md5(b'md512')
md51.update('md51'.encode('utf-8'))
res = md51.hexdigest() print("采用key加密:",res)
好了,今天就跟大家说这么多,主要给大家介绍了md5、sha1、sha224、sha256、sha384、sha512和高级加密等集中算法,简单介绍了每个算法的特点和使用方法,后续精彩敬请期待!
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
在数字化市场调研体系中,大数据与小数据是两类核心调研数据形态,分别对应海量行为统计与精准样本深度调研。行业普遍存在认知误 ...
2026-08-07数据透视表是Excel、WPS中最核心的数据分析工具,凭借快速汇总、分组统计、动态筛选的优势,被广泛应用于销量统计、业绩复盘、数 ...
2026-08-07 很多数据分析师每天盯着GMV、DAU、转化率,但当被问到“哪些指标在所有行业都适用”“哪些指标只对电商有意义”“二者如何搭 ...
2026-08-07在商品销量、市场需求、营收规模等业务数据中,季节性波动是最普遍、最核心的数据特征。零售快消、食品餐饮、家电服饰、电商行业 ...
2026-08-06在流量红利消退、市场竞争白热化的商业环境中,传统依托经验、跟风投放、广撒网式的营销模式,逐渐暴露出成本高、精准度低、转化 ...
2026-08-06 很多数据分析师每天盯着GMV、DAU、转化率,但当被问到“什么是指标”“指标和维度有什么区别”“如何定义指标值的计算规则和 ...
2026-08-06【核心关键词】知识、设备、工程师、数字化、建模、算法、工业大数据、数据分析、控制算法、机器学习、深度学习、业务目标、工 ...
2026-08-05增长率是数据分析、业务报表、可视化看板中最核心的指标之一,常用于衡量营收、销量、用户量、流量等业务数据的涨跌幅度与发展趋 ...
2026-08-05小陈是某电商平台的数据分析师。老板交给他一个任务:“我们平台的注册用户已经突破1000万了,想了解一下用户的平均月消费金额。 ...
2026-08-05在机器学习建模、数据预处理、抽样划分、模型初始化训练的全流程中,随机种子是控制实验随机性、保证结果可复现、提升模型稳定性 ...
2026-08-04Python作为面向对象的主流编程语言,核心编程体系由变量、方法、类三大基础要素构成。三者层层递进、相互协作,支撑起所有基础代 ...
2026-08-04 很多数据分析师沉迷于复杂的机器学习算法,却忽略了数据分析最基础也最核心的能力——描述性统计。事实上,80%的商业分析问 ...
2026-08-04为什么学习数据分析? 当下,我们已然步入数据要素价值全面释放的智能时代。数据不再只是零散的数字记录,更是驱动新质生产力运 ...
2026-08-03CDA等级认证证书有效期为三年,三年进行一次年审,主要考察CDA持证人的职业发展情况;学历、工作单位及职业变更情况;继续教育 ...
2026-08-03【核心关键词】金融、岗位、企业、算法、知识、专业、理论、课程、软件、数据分析、业务类型、应用场景、经营管理、大型企业、 ...
2026-08-03在日常数据分析、业务报表复盘、业绩预测工作中,平均增长率是衡量数据长期变化趋势的核心指标,广泛用于营收增长、用户增长、销 ...
2026-08-03很多人把统计学理解为“一堆公式和计算”,却忽略了它的本质——一门让数据“开口说话”的科学。真正的数据分析高手,不是会算平 ...
2026-08-03在数据指标体系搭建工作中,从业者常困惑于指标搭建的核心逻辑:究竟是依托一线零散数据自下而上汇总指标,还是基于战略目标自上 ...
2026-07-31在数据分析、问卷研究、实验复盘、业务建模的工作中,大多数人最关注的是“用什么统计方法”:是做T检验、方差分析、卡方检验, ...
2026-07-31 许多数据分析师精通Excel函数和SQL查询,但当面对一张上万行的销售明细表,要快速回答“哪个地区销量最高”“哪款产品增长最 ...
2026-07-31