zoukankan      html  css  js  c++  java
  • collision weaknesses

    15.1. hashlib — Secure hashes and message digests — Python 3.5.6 documentation https://docs.python.org/3.5/library/hashlib.html

    import hashlib
    
    
    def hashlib_str(str, type='sha224'):
        if type == 'sha224':
            return hashlib.sha224(str).hexdigest()
        elif type == 'sha256':
            return hashlib.sha224(str).hexdigest()
        elif type == 'sha384':
            return hashlib.sha384(str).hexdigest()
        elif type == 'sha512':
            return hashlib.sha512(str).hexdigest()
        elif type == 'md5':
            return hashlib.md5().hexdigest()
        elif type == 'sha1':
            return hashlib.sha1().hexdigest()
    
    
    l = ['剑网三 唐门的 武器材料提示我用光了 很多技能不能用 找了很久不知道在什么地方买', '剑网三方买',
         '剑网三 唐门的 武器材料提示我用光了 很多技能不能用 找了很久不知道在什么地方买剑网三 唐门的 武器材料提示我用光了 很多技能不能用 找了很久不知道在什么地方买']
    '''
    SELECT SUM(1) FROM  question;
    11652677
    
    SELECT SUM(LENGTH(title))/(SELECT SUM(1) FROM  question) FROM question;
    57.1070
    '''
    type_l = ['sha224', 'sha256', 'sha384', 'sha512', 'md5', 'sha1']
    for str in l:
        for t in type_l:
            str_ = str.encode(encoding='utf-8')
            print(t, len(str), len(hashlib_str(str_, type=t)))
    

      

    sha224 40 56
    sha256 40 56
    sha384 40 96
    sha512 40 128
    md5 40 32
    sha1 40 40
    sha224 5 56
    sha256 5 56
    sha384 5 96
    sha512 5 128
    md5 5 32
    sha1 5 40
    sha224 80 56
    sha256 80 56
    sha384 80 96
    sha512 80 128
    md5 80 32
    sha1 80 40

    在避免哈希冲突的情况下,尽可能用少的字符串;

  • 相关阅读:
    python发送邮件
    常用的排序算法
    关于前端ajax请求url为何添加一个随机数
    RabbitMQ消息队列
    shell编程基本语法和变量
    第70课 展望:未来的学习之路(完结)
    第69课 技巧:自定义内存管理
    第68课 拾遗:让人迷惑的写法
    第67课 经典问题解析五
    第66课 C++中的类型识别
  • 原文地址:https://www.cnblogs.com/rsapaper/p/10031013.html
Copyright © 2011-2022 走看看