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())
  • 相关阅读:
    2018 ACM-ICPC 中国大学生程序设计竞赛暨丝绸之路程序设计竞赛
    牛客小白月赛2
    求n个数中前k个数,按之前的顺序输出(HK IPM)
    js_复选框单选与复选
    js_判断字符串中出现最多的字符的和次数
    js_倒计时
    海通证券面试
    上海利莫面试
    中焯信息面试
    富途面试
  • 原文地址:https://www.cnblogs.com/wc89/p/10393654.html
Copyright © 2011-2022 走看看