zoukankan      html  css  js  c++  java
  • python模块之hashlib模块

      hashlib模块:提供摘要算法

      格式:

    hashlib格式:
                obj = hashlib.算法(md5,sha....)
                obj.update(摘要内容:bytes类型)
                result = obj.hexdigest()

      具体使用的方法:

    abstract = hashlib.md5()
    abstract1 = hashlib.md5()
    abstract2 = hashlib.sha1()
    abstract.update(bytes('密文', encoding='utf-8'))
    abstract1.update(bytes('密文', encoding='utf-8'))
    abstract2.update(bytes('密文', encoding='utf-8'))
    print(abstract.hexdigest())  # c099362aa8fc5c5d1be88e4c2c42ea62
    print(abstract1.hexdigest())  # c099362aa8fc5c5d1be88e4c2c42ea62
    print(abstract2.hexdigest())  # 058115813f2cbb11f638a736c22b3bd32a5e46dc

      从上面的例子看出摘要算法的特点:

    摘要算法特点:可用于文件的一致性验证
            1,对于相同的字符串,同一种算法摘要后的值总是相同的
            2,对于相同的字符串,不同的算法摘要后的值应该是不相同的

      加盐摘要:进一步提高密文的安全性,防止撞库!

    abstract = hashlib.md5(bytes('加盐', encoding='utf-8'))
    abstract.update(bytes('密文', encoding='utf-8'))
    print(abstract.hexdigest())  # 17de8554897051e741525a38fc250adf

      动态加盐:使用用户名的某一部分作为加盐的对象或和盐进行拼接后加盐。

    user = input('username:')
    abstract = hashlib.md5(bytes(user, encoding='utf'))
    abstract.update(bytes('密文', encoding='utf-8'))
    print(abstract.hexdigest())
  • 相关阅读:
    [FE] uni-app 安装 uview-ui 的两种方式
    [FE] Canvas 转图片并下载的方式
    [K8s] Pod 与容器设计模式 Sidecar
    [Docker] 使 Volume 独立于容器运行时的方式
    mysql授权用户以指定IP登录的方法
    linux安装mysql客户端
    kali 安装 Google Chrome
    KALI图形界面root 用户登入
    git reset 版本回退命令
    git log 常用命令
  • 原文地址:https://www.cnblogs.com/zxc-Weblog/p/8342580.html
Copyright © 2011-2022 走看看