zoukankan      html  css  js  c++  java
  • 常用模块——hashlib模块

    hashlib模块

    hashlib是一种算法,将一个任意长的数据根据计算得到一个固定长度的特征码。

    特征:

      不同输入可能会有相同的结果,但是几率特别小。

      相同输入必然得到相同的结果。

      由于散列(特征)的性质从原理上来看是不可能被反解的。

    应用场景:

    用来验证两个输入的数据是否一致

    1.密码验证:

      客户端通过加密,发送加密的密码给服务端

    2.验证数据是否被篡改,比如游戏安装包,有没有被改过。

    为了防止被别人撞库成功,可用提升密码的复杂度,其次可以为密码加盐(加点内容进去)

    用法

    import hashlib
    res = hashlib.md5('123'.encode('utf-8'))#MD5加密方法
    #加密的东西必须为二进制位
    print(res.hexdigest())#以十六进制数字显示

     撞库的原理是将常用的内容通过存储对应关系,来解析haslib的到的值是什么。

    所以除了增加密码复杂度的方法,还可以通过加盐的方法使得不被撞库破解。

    m = hashlib.md5('123'.encode('utf-8'))
    print(m.hexdigest())
    m.update('ssssdf'.encode('utf-8'))#加盐的方式
    print(m.hexdigest())
    #202cb962ac59075b964b07152d234b70
    #7b489317c98ae4d4594c23fa0f4725d1
  • 相关阅读:
    【luogu P1307 数字反转】 题解
    【luogu P1111 公路修建】 题解
    字符串与正则运算
    Java 正则表达式的总结和一些小例子
    js -history.back(-1)和history.go(-1) 区别
    js
    html _ 提取html片段内的纯文本
    vue-x action 的相互调用
    java通过过滤器 设置跨域允许
    git-搭建企业git服务器
  • 原文地址:https://www.cnblogs.com/msj513/p/9810315.html
Copyright © 2011-2022 走看看