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

    hashlib
    hash是什么?
    是一种算法
    用于将任意长度的数据,压缩映射到一段固定长度的字符 (提取特征)

    hash的特点:
    1.输入数据不同,得到的hash值有可能相同
    2.不能通过hash值来得到输入的值
    3.如果算法相同,无论输入的数据长度是多少,得到的hash值长度相同

    常用的MD5就是一种hash算法    
    常用的提升安全性的手段 就是  加盐
    就是把你加密前的数据做一些改动 例如 把顺序反过来
    import hashlib
    m = hashlib.md5()
    m.update(b'123')
    m.hexdigest()
    '202cb962ac59075b964b07152d234b70'
    
    # 或者可以这样
    hashlib.md5(b'123').hexdigest()
    '202cb962ac59075b964b07152d234b70'
    
    # 也可以使用hash.new()这个一般方法
     hashlib.new('md5', b'123').hexdigest()
    '202cb962ac59075b964b07152d234b70'

    中文:
    import hashlib
    md = hashlib.md5()
    md.update("hello你这么牛逼吗 你破解我试试? DSB".encode("utf-8"))
    print(md.hexdigest())
    # 破解MD5可以尝试撞库   原理: 有一个数据库 里面存放了常见的明文和密文的对应关系

    # 加密实际上能做的就是让黑客的的破解成本大于他的利润
    for i in pwd_dic:
        if pwd_dic[i] == "5d41402abc4b2a76b9719d911017c592":
    print(i)

  • 相关阅读:
    使用respondsToSelector:来发现对象是否响应消息
    使用iskindofclass来发现对象是否是某类或其子类的实例
    集合set的使用
    字典的使用
    数组的使用
    对NSNumber的理解
    数组、字典和集合的定义
    强引用strong和弱引用weak的定义
    类工厂方法的定义
    POJ 2262 / UVa 543
  • 原文地址:https://www.cnblogs.com/liu--huan/p/9471390.html
Copyright © 2011-2022 走看看