python中hashlib模块


我们在储存一些重要的数据的时候,通常会将这些数据进行加密后进行储存。python中的hashlib为我们提供了这样的功能,其中主要包括MD5,SHA1,SHA256,SHA384,SHA512

等常见摘要算法。

什么是摘要算法?摘要算法又称哈希算法,它通过一个函数,把一个任意长度的数据进行加密后生成固定长度的数据串。

MD5是最常见的摘要算法,速度很快,生成固定长度128bit字节

SHA算法的结果是160bit,越安全的算法意味着其速度会相应变慢。

所以常见的算法为MD5和sha1算法。


使用的例子

import hashlib

def encrypt(arg):
    s = bytes(arg,encoding = "utf-8")
    md5 = hashlib.md5()
    md5.update(s)
    return md5.hexdigest()

str1 = "hi hashlib"
print(encrypt(str1))

其结果为

7cd5fd2b70cc4f543412a849e167dd55

使用其它的算法使用方式一样,区别只是其内部的算法实现不一样,相当于为我们提供了这些接口我们去使用。


但是往往只是经过这样的加密,其实并不是很安全,我们可以通过撞库的方式去获取这些重要的信息(我们可以列举出常用地字符串,生成相应的密码,然后作比较),这时我们可以通过在原来字符串的基础上自己提供一个key的字符串,先对这个字符串进行处理,然后再对想加密的数据进行加密。只要我们不将自己设定的字符串暴露,基本上无法破解。


例子

import hashlib

def encrypt(arg):
    s = bytes(arg,encoding = "utf-8")
    md5 = hashlib.md5(bytes("too young to simple",encoding="utf-8"))
    md5.update(s)
    return md5.hexdigest()

str1 = "hi hashlib"
print(encrypt(str1))


其结果为

856800434f7d4f6d5b3dc62920f0105c









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值