python中的hashlib模块使用实例

 更新时间:2023年08月11日 09:59:29   作者:菜鸟更要努力呀  
这篇文章主要介绍了python中的hashlib模块使用实例,hashlib是一个提供字符串加密功能的模块,包含MD5和SHA的算法,MD5和SHA是摘要算法,文中以实例代码讲解hashlib模块的基本用法,需要的朋友可以参考下

1 hashlib模块的作用:

hashlib是一个提供字符串加密功能的模块,包含MD5和SHA的算法,MD5和SHA是摘要算法,摘要算法是什么呢:

也可以称为哈希算法,离散算法。

通过一个函数将任意长度的数据转化为一个长度固定的数据串,摘要函数是一个单向函数,计算f(data)很容易,但是通过digest反推data非常困难,对data做任意修改,计算出的摘要完全不相同。

2 以MD5算法为例使用hashlib:

md5算法特点:

  • 该算法不可逆
  • 不同字符串通过这个算法计算得到的密文总不相同
  • 相同算法以及相同的字符串获得的密文结果总是相同

用法实例:

import hashlib
new_md5=hashlib.md5()
new_md5.update('guo')
ret=new_md5.hexdigest()
# ret 为加密后的字符串

函数形式实现加密操作:

import hashlib
def get_ret(s):
    new_md5=hashlib.md5()
    new_md5.update(s)
    ret=new_md5.hexdigest()
    return ret
get_ret('guo')

用户验证登录:

import hashlib
def get_ret(s)
    new_md5=hashlib.md5()
    new_md5.update(s)
    ret = new_md5.hexdigest()
    return ret
username = input('username:')
password = input('password:')
with open('userinfo') as f:
    for line in f:
        usr, pwd = line.strip().split('|')
        if username == usr and get_ret(password) == pwd:
            print '登陆成功'
            break
        else:
            print('登录失败')

主要的应用场景呢,就是我们的密码的加密和明文的加密,按照一定的约定去形成我们的加密的方式即可,有些时候为了避免太过于简单的加密,我们会约定一个私钥,增加加密的复杂性。

到此这篇关于python中的hashlib模块使用实例的文章就介绍到这了,更多相关python的hashlib模块内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 对python 数据处理中的LabelEncoder 和 OneHotEncoder详解

    对python 数据处理中的LabelEncoder 和 OneHotEncoder详解

    今天小编就为大家分享一篇对python 数据处理中的LabelEncoder 和 OneHotEncoder详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • 在python中计算ssim的方法(与Matlab结果一致)

    在python中计算ssim的方法(与Matlab结果一致)

    这篇文章主要介绍了在python中计算ssim的方法(与Matlab结果一致),本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • Python环境下安装PyGame和PyOpenGL的方法

    Python环境下安装PyGame和PyOpenGL的方法

    这篇文章主要介绍了Python环境下安装PyGame和PyOpenGL的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • Python通过IP地址查询地理位置的几种方法

    Python通过IP地址查询地理位置的几种方法

    本文介绍通过IP查询地理位置的两种方法:在线API(如ipinfo.io,快速但有请求限制)和本地数据库(如GeoLite2,高效但需定期更新),并推荐结合使用以满足不同场景需求,需要的朋友可以参考下
    2025-09-09
  • python 基于opencv操作摄像头

    python 基于opencv操作摄像头

    这篇文章主要介绍了python 基于opencv操作摄像头的方法,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-12-12
  • 详解Python中@staticmethod和@classmethod区别及使用示例代码

    详解Python中@staticmethod和@classmethod区别及使用示例代码

    这篇文章主要介绍了详解Python中@staticmethod和@classmethod区别及使用示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • python中的import绝对导入与相对导入详解

    python中的import绝对导入与相对导入详解

    这篇文章主要介绍了python中的import绝对导入与相对导入详解,在使用python做一些简单项目时,import一般不会出现问题,但项目结构复杂时,import可能发生报错,需要的朋友可以参考下
    2023-11-11
  • 使用Python开发一个Ditto剪贴板数据导出工具

    使用Python开发一个Ditto剪贴板数据导出工具

    在日常工作中,我们经常需要处理大量的剪贴板数据,下面将介绍如何使用Python的wxPython库开发一个图形化工具,实现从Ditto数据库中读取、选择和导出剪贴板历史记录的功能
    2025-08-08
  • Python如何测试stdout输出

    Python如何测试stdout输出

    这篇文章主要介绍了Python如何测试stdout输出,帮助大家更好的理解和学习Python,感兴趣的朋友可以了解下
    2020-08-08
  • numpy中的随机打乱数据方法np.random.shuffle解读

    numpy中的随机打乱数据方法np.random.shuffle解读

    这篇文章主要介绍了numpy中的随机打乱数据方法np.random.shuffle解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05

最新评论