• 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

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

  • 相关阅读:
    通过scp拷贝文件时无需交互输入密码
    suse linux安装lrzsz
    shc加密shell脚本
    linux小程序--cmatrix
    linux系统PXE+Kickstart自动安装系统
    升级SSH
    shell生成随机数的几种方法
    django —— MVT模型
    Django学习---笔记一
    python学习--Django虚拟环境搭建
  • 原文地址:https://www.cnblogs.com/rsapaper/p/10031013.html
Copyright © 2020-2023  润新知