python-hash和md5算法

一、HASH

HASH——‘哈希’,输入任意长度的值,生成固定长度的散列值。

注意:hash所生成的值在python程序本次运算时一直,下次程序运算时会生成另一个hash值。

二、MD5

MD5信息摘要算法

2.1功能:

​ 1、输入任意长度,经过算法,输出128位固定长度[外链图片转存失败的值(数字指纹)。

2、不同的输入,得到不同的结果(唯一性)

2.2特点:

1、压缩性:输入任意,MD5值长度固定

2、容易计算:原始数据很容易就能算出MD5的值。

3、抗修改:修改了一点点,所算出MD5值差别很大。

4、强碰撞:已知一个MD5值,想通过另一个值算出相同的值很难。

2.3是否可逆?

MD5是基于hash算法,在计算过程中原文数据就丢失了,所以不可逆。

2.4有什么用途?

1.防止被篡改

2.防止看到明文

3.数字签名

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
# @File    : 4.10.hash加密算法.py
# @Software: PyCharm

import hashlib

# 1.将字符串,通过加密算法,变成固定长度的输出
s = 'abc'
print(len(str(hash(s)))*4, hash(s))

# 2.生成md5数字指纹。
# 第1种写法:
s2 = b'!@abc'  # 定义字节型字符串
md = hashlib.md5()  # 导入md5算法
md.update(s2)  # 把值传给md5算法

print(md.digest())  # 生成一个128位的2进制数
print('MD5', '长度:', len(md.hexdigest())*4, md.hexdigest())
# 第2种写法:
print(hashlib.md5("!@abc".encode("utf-8")).hexdigest())

# 3.SHA-1

hash = hashlib.sha1()
hash.update('admin'.encode('utf-8'))
print('SHA-1', '长度:', len(hash.hexdigest())*4, hash.hexdigest())

# 4.SHA-256

hash = hashlib.sha256()
hash.update('admin'.encode('utf-8'))
print('SHA-256', '长度:', len(hash.hexdigest())*4, hash.hexdigest())

# 5.SHA-384

hash = hashlib.sha384()
hash.update('admin'.encode('utf-8'))
print('SHA-384', '长度:', len(hash.hexdigest())*4, hash.hexdigest())

# 5.SHA-512

hash = hashlib.sha512()
hash.update('admin'.encode('utf-8'))
print('SHA-384', '长度:', len(hash.hexdigest())*4, hash.hexdigest())
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值