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())
  • 相关阅读:
    从淘宝数据结构来看电子商务中商品属性设计
    YY淘宝商品数据库设计
    ElasticSearch-聚合bucket学习
    ElasticSearch-聚合bucket
    Elasticsearch(9) --- 聚合查询(Bucket聚合)
    Elasticsearch-多字段搜索(Multifield Search)和提高精确度
    五、设备管理与文件系统
    六、YUM仓库
    四、查找命令
    二、用户权限
  • 原文地址:https://www.cnblogs.com/wc89/p/10393654.html
Copyright © 2011-2022 走看看