zoukankan      html  css  js  c++  java
  • Python内置模块之-hashlib

    一 、概述

    摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。

    摘要算法的特点

    • 不论data大小,摘要结果是固定长度
    • 单向函数,计算data的摘要可以,但不可以通过摘要反推data
    • 摘要算法不是加密算法,不能用以加密,因为不能反推是单向函数,主要用于防篡改

    主要用途

    • 密码密文存储
    • 文件一致性验证
    import hashlib
    md5 = hashlib.md5() # 拿到md5对象
    md5.update(bytes('123456',encoding='utf-8')) # 注意是bytes类型,且注明编码
    ret =md5.hexdigest() # 获得md5值
    print(ret)

     二、用法

    • 使用update更新散列对象时,需要先将字符串转换为bytes类型,注意编码
    • 使用update的时候可以多次update,结果跟一次性得到的摘要是相同的
    • 加盐可以增加安全性,防撞库

    对某个字符串一次性进行md5摘要

    name = 'wangys'  # 待摘要的字符串
    md5 = hashlib.md5() # 通过md5方法拿到一个对象
    md5.update(bytes(name,encoding='utf-8')) # 使用update对象
    ret = md5.hexdigest() # 使用hexdigest得到摘要值
    print(ret)
    # ec220befabb67c9052cf4608bb5752f8

    对某个字符串多次进行摘要

    # 得到的摘要结果一样
    name = 'wangys' md5 = hashlib.md5() md5.update(bytes(name[:2],encoding='utf-8')) md5.update(bytes(name[2:],encoding='utf-8')) ret = md5.hexdigest() print(ret)
    # ec220befabb67c9052cf4608bb5752f8

    进行摘要的时候加盐

    import  hashlib
    name = 'wangys'
    md5 = hashlib.md5(bytes('haha',encoding='utf-8')) # 盐为 haha
    md5.update(bytes(name,encoding='utf-8'))
    print(md5.hexdigest())
  • 相关阅读:
    用C#来开发CAD插件,含源代码
    C#自定义工业控件开发
    判断点是否在多边形内部
    在C#中使用属性控件添加属性窗口
    Java TreeMap 介绍和使用
    Java中异常处理之try和catch代码块的使用
    Class.forName()的作用与使用总结
    web.xml文件详解
    Java中普通代码块,构造代码块,静态代码块区别及代码示例
    详解JSP九个内置对象
  • 原文地址:https://www.cnblogs.com/wc89/p/10393654.html
Copyright © 2011-2022 走看看