zoukankan      html  css  js  c++  java
  • MD5 SHA1 CRC32

    md5:

    import hashlib
    
    md5 = hashlib.md5()
    md5.update(bytes('http://www.baidu.com',encoding="utf-8"))
    result = md5.hexdigest()
    

      

    SHA1:

    import hashlib
    
    sha1 = hashlib.sha1()
    sha1.update(bytes('how to use sha1 in ',encoding="utf-8"))
    result = sha1.hexdigest()
    

      

    CRC32:

    from zlib import crc32
    
    
    result = crc32(b'http://www.baidu.com')
    

      

    其中SHA-1与MD5 的最大区别在于其摘要比MD5 摘要长 32 比特。对于强行攻击,产生任何一个报文使之摘要等于给定报文摘要的难度:MD5 是2128 数量级的操作,SHA-1 是2160 数量级的操作。但由于SHA-1 的循环步骤比MD5 多(80:64)且要处理的缓存大(160 比特:128 比特),SHA-1 的运行速度比MD5 慢。

    虽然在数据表非常大的时候CRC32会出现大量hash冲突,但是能提供更好的性能,在mysql性能优化能起到很好的作用。查询语句可以这样来写:

    select id from table where url_crc=%s and url=%s;
    

      

  • 相关阅读:
    例5-6
    例5-5
    例5-4
    例4-5
    例4-4
    例4-3
    例4-2
    例3-11
    例3-10
    例3-9
  • 原文地址:https://www.cnblogs.com/zenan/p/9165719.html
Copyright © 2011-2022 走看看