zoukankan      html  css  js  c++  java
  • python hashilib模块

    摘要算法模块 :

      能够把一个字符串数据类型的变量,转换成一个定长的,密文的字符串,字符串中的每一个字符都是一个十六进制数字.

      对于同一个字符串,不管这个字符串有多长,只要是相同的字符串,无论在任何环境下,执行多少次,在任何语言中,只要使用相同的算法/相同的手段得到的结果永远都是相同的.

      字符串不相同,得到的结果一定不同

    # hashlib模块提供了摘要算法,如md5,sha1
    # md5和sha1调用方法完全类似,不过sha1结果是40位16进制字符串.
    # 通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常为16进制的字符串)
    # 摘要函数是一个单项函数,通过数据转换数据串容易,反推很难
    
    import hashlib
    # s = 'dkjlfhg'
    # a = hashlib.md5()   #将算法赋值给a
    # a.update(s.encode('utf-8'))#转码为utf-8,本身为bytes类型
    # b = a.hexdigest()#经过两步运算得到一串32位的字符串
    # print(b,type(b))
    
    #如果待转换数据量非常大,可以分块多次调用update(),最后计算结果是一样的
    s = 'akjfhalkjfhga'
    a = hashlib.md5()
    a.update(s[:5].encode('utf-8'))
    a.update(s[5:].encode('utf-8'))
    b = a.hexdigest()
    print(b)
    a = hashlib.md5()
    a.update(s.encode('utf-8'))
    x = a.hexdigest()
    print(x)#两次转换结果相同
  • 相关阅读:
    openstack官方指导书
    获取当前日期时间并格式化
    获取url中的参数
    页签切换
    app开屏广告
    开发接口文档--本接口文档是读取控制器方法上的注释自动生成的
    bzoj 1491: [NOI2007]社交网络
    bzoj 3996: [TJOI2015]线性代数
    5.6水题合集
    bzoj 3528: [Zjoi2014]星系调查
  • 原文地址:https://www.cnblogs.com/dong-/p/9452035.html
Copyright © 2011-2022 走看看