精华内容
下载资源
问答
  • #python之模块hashlib(提供了常见的摘要算法,如MD5,SHA1等等) #http://www.cnblogs.com/BeginMan/p/3328172.html #以常见的摘要算法MD5为例,计算出一个字符串的MD5值 import hashlib m = ...
    # -*- coding: utf-8 -*-
    #python 27
    #xiaodeng
    #python之模块hashlib(提供了常见的摘要算法,如MD5,SHA1等等)
    #http://www.cnblogs.com/BeginMan/p/3328172.html
    
    
    
    
    #以常见的摘要算法MD5为例,计算出一个字符串的MD5值
    import hashlib
    m = hashlib.md5()           #创建hash对象
    m.update('xiaodeng')        #更新哈希对象以字符串参数
    print m.hexdigest()         #accd5818a8547b13180044139260c80d
    
    
    #数据量很大,可以分块多次调用update(),
                #最后计算的结果是一样的
    import hashlib
    m = hashlib.md5()
    m.update('xiao')
    m.update('deng')
    print m.hexdigest()         #返回十六进制数字字符串,accd5818a8547b13180044139260c80d
    #print m.digest()            #返回摘要,作为二进制数据字符串值
    print m.digest_size         #产生的散列的字节大小
    print m.block_size
    
    
    
    #应用:
    import datetime
    key_value='xiaodeng'
    now=datetime.datetime.now()
    m=hashlib.md5()
    string='%s%s'%(key_value,now.strftime('%Y%m%d'))#加密方式怎么写可以由程序员自己决定,不能其他人知道即可
    m.update(string)
    value=m.hexdigest()
    print value#bff15a80fddc90267a9286806231d7da

     

    展开全文
  • Python hashlib常见摘要算法详解发布时间:2020-09-17 00:42:27来源:脚本之家阅读:100这篇...需要的朋友可以参考下Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等计算出一个字符串的MD5值:import hash...

    Python hashlib常见摘要算法详解

    发布时间:2020-09-17 00:42:27

    来源:脚本之家

    阅读:100

    这篇文章主要介绍了Python hashlib常见摘要算法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等

    计算出一个字符串的MD5值:

    import hashlib

    md5 = hashlib.md5()

    md5.update('how to use md5 in python hashlib?'.encode("utf8")) #需要指定转码 否则报错 update()必须指定要加密的字符串的字符编码

    print( md5.hexdigest())#返回十六进制

    print( md5.digest()) #二进制

    # 如果数据量很大,可以分块多次调用update(),最后计算的结果是一样的:

    md5 = hashlib.md5()

    md5.update('how to use md5 in '.encode("utf8"))

    md5.update('python hashlib?'.encode("utf8"))

    print( md5.hexdigest())#返回十六进制

    上述结果:

    d26a53750bc40b38b65a520292f69306

    b'\xd2jSu\x0b\xc4\x0b8\xb6ZR\x02\x92\xf6\x93\x06'

    d26a53750bc40b38b65a520292f69306

    计算出一个字符串SHA1值:

    import hashlib

    sha_1 = hashlib.sha1()

    sha_1.update('how to use sha1 in '.encode("utf8")) #需要指定转码 否则报错 update()必须指定要加密的字符串的字符编码

    sha_1.update('python hashlib?'.encode("utf8"))

    print (sha_1.hexdigest())

    # 如果数据量很大,可以分块多次调用update(),最后计算的结果是一样的:

    sha2 = hashlib.sha1()

    sha2.update('how to use sha1 in python hashlib?'.encode("utf8"))

    print (sha2.hexdigest())

    打印结果:

    2c76b57293ce30acef38d98f6046927161b46a44

    2c76b57293ce30acef38d98f6046927161b46a44

    读取文件获取MD5值:

    import os

    import hashlib

    #文件md5

    def file_md5(pathandname):

    if os.path.isfile(pathandname):

    hashmd5 = hashlib.md5()

    file = open(pathandname, 'rb')

    while True:

    b = file.read(1024)

    if not b:

    break

    hashmd5.update(b)

    file.close()

    return hashmd5.hexdigest()

    else:

    return None

    print(file_md5("C:\\Users\\Administrator\\Desktop\\V2.6.1_B511\\hvr_dec")) #aef87d1d673ca52412b4a950a06b9557

    读取文件base64

    import base64

    import os

    # base64,参数为文件路径名

    def file_base64(filepath):

    if os.path.isfile(filepath):

    with open(filepath, 'rb') as file:

    file_base64_str = base64.b64encode(file.read())

    return file_base64_str

    else:

    return None

    读取sha256

    import hmac

    import hashlib

    def get_hmacsha256(key, message):

    key_bytes = bytes(key, 'utf-8')

    message_bytes = bytes(message, 'utf-8')

    hmacsha256_str = hmac.new(key_bytes, message_bytes, digestmod=hashlib.sha256).hexdigest()

    return hmacsha256_str

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持亿速云。

    展开全文
  • 这篇文章主要介绍了Python hashlib常见摘要算法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等计算...

    这篇文章主要介绍了Python hashlib常见摘要算法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等

    计算出一个字符串的MD5值:

    import hashlib

    md5 = hashlib.md5()

    md5.update('how to use md5 in python hashlib?'.encode("utf8")) #需要指定转码 否则报错 update()必须指定要加密的字符串的字符编码

    print( md5.hexdigest())#返回十六进制

    print( md5.digest()) #二进制

    # 如果数据量很大,可以分块多次调用update(),最后计算的结果是一样的:

    md5 = hashlib.md5()

    md5.update('how to use md5 in '.encode("utf8"))

    md5.update('python hashlib?'.encode("utf8"))

    print( md5.hexdigest())#返回十六进制

    上述结果:

    d26a53750bc40b38b65a520292f69306

    b'\xd2jSu\x0b\xc4\x0b8\xb6ZR\x02\x92\xf6\x93\x06'

    d26a53750bc40b38b65a520292f69306

    计算出一个字符串SHA1值:

    import hashlib

    sha_1 = hashlib.sha1()

    sha_1.update('how to use sha1 in '.encode("utf8")) #需要指定转码 否则报错 update()必须指定要加密的字符串的字符编码

    sha_1.update('python hashlib?'.encode("utf8"))

    print (sha_1.hexdigest())

    # 如果数据量很大,可以分块多次调用update(),最后计算的结果是一样的:

    sha2 = hashlib.sha1()

    sha2.update('how to use sha1 in python hashlib?'.encode("utf8"))

    print (sha2.hexdigest())

    打印结果:

    2c76b57293ce30acef38d98f6046927161b46a44

    2c76b57293ce30acef38d98f6046927161b46a44

    读取文件获取MD5值:

    import os

    import hashlib

    #文件md5

    def file_md5(pathandname):

    if os.path.isfile(pathandname):

    hashmd5 = hashlib.md5()

    file = open(pathandname, 'rb')

    while True:

    b = file.read(1024)

    if not b:

    break

    hashmd5.update(b)

    file.close()

    return hashmd5.hexdigest()

    else:

    return None

    print(file_md5("C:\\Users\\Administrator\\Desktop\\V2.6.1_B511\\hvr_dec")) #aef87d1d673ca52412b4a950a06b9557

    读取文件base64

    import base64

    import os

    # base64,参数为文件路径名

    def file_base64(filepath):

    if os.path.isfile(filepath):

    with open(filepath, 'rb') as file:

    file_base64_str = base64.b64encode(file.read())

    return file_base64_str

    else:

    return None

    读取sha256

    import hmac

    import hashlib

    def get_hmacsha256(key, message):

    key_bytes = bytes(key, 'utf-8')

    message_bytes = bytes(message, 'utf-8')

    hmacsha256_str = hmac.new(key_bytes, message_bytes, digestmod=hashlib.sha256).hexdigest()

    return hmacsha256_str

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

    本文标题: Python hashlib常见摘要算法详解

    本文地址: http://www.cppcns.com/jiaoben/python/298305.html

    展开全文
  • Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等 计算出一个字符串的MD5值: import hashlib md5 = hashlib.md5() md5.update('how to use md5 in python hashlib?'.encode("utf8")) #需要指定转码 否则报错...
  • 摘要算法

    2017-11-23 20:36:00
    import hashlib#摘要算法的模块# Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。## 什么是摘要算法呢?摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串...
    import hashlib
    #摘要算法的模块

    # Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。
    #
    # 什么是摘要算法呢?摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。
    #
    # 摘要算法就是通过摘要函数f()对任意长度的数据data计算出固定长度的摘要digest,目的是为了发现原始数据是否被人篡改过。
    #
    # 摘要算法之所以能指出数据是否被篡改过,就是因为摘要函数是一个单向函数,计算f(data)很容易,但通过digest反推data却非常困难。而且,对原始数据做一个bit的修改,都会导致计算出的摘要完全不同。

    # 我们以常见的摘要算法MD5为例,计算出一个字符串的MD5值:
    # md5_obj = hashlib.md5() #选择摘要算法中的md5类进行实例化,得到得到md5_obj
    # md5_obj.update(b'12345')#对一个字符串进行摘要
    # md5_obj.update(b'xiaoxiao')#对一个字符串进行摘要
    # print(md5_obj.hexdigest())#找摘要算法要结果
    #
    # md5_obj = hashlib.md5()
    # md5_obj.update(b'12345xiaoxiao')
    # print(md5_obj.hexdigest())

    # MD5是最常见的摘要算法,速度很快,生成结果是固定的128 bit字节,
    # 通常用一个32位的16进制字符串表示。另一种常见的摘要算法是SHA1,
    # 调用SHA1和调用MD5完全类似

    # md5_obj = hashlib.md5()#选择摘要算法中的md5类进行实例化,得到md5_obj
    # md5_obj.update(b'how to use md5 in python hashlib?alex')#对一个字符串进行摘要
    # print(md5_obj.hexdigest()) #找摘要算法要结果

    #一篇文章的校验
    #读文件 : 一行一行拿
    #转换成bytes

    #文件1
    #文件2
    #分别打开两个文件,一行一行读,没一行update一下 对比最终的hexdigest


    # 查看某两个文件是否完全一致 —— 文件的一致性校验
    # 加密认证 —— 在存储密码的时候是使用密文存储的,校验密码的时候对用户的输入再做一次校验
    # 加盐
    # 动态加盐

    # import hashlib
    # sha256_obj = hashlib.sha256('*!金老板'.encode('utf_8'))
    # sha256_obj.update(b'12344')
    # print(sha256_obj.hexdigest())

    #用户名 + 一个复杂的字符串 + 密码

    #hashilib 摘要算法的模块
    # md5 sha1 sha256 sha512
    # 摘要的过程 不可逆
    # 能做的事儿:
    #文件的一致性检测
    #用户的加密认证
    #单纯的mg5不够安全
    #加盐处理 简单的盐可能被破解 且破解之后所有的盐都失效了
    #动态加盐

    # 默认情况下Python的logging模块将日志打印到了标准输出中,
    # 且只显示了大于等于WARNING级别的日志,这说明默认的日志级别设置为WARNING
    # (日志级别等级CRITICAL > ERROR > WARNING > INFO > DEBUG)
    # ,默认的日志格式为日志级别:Logger名称:用户输出消息。

    # log 日志
    # 5000
    # 账单 —— 日志
    # 计算器中间结果 —— 日志
    # 搜索、加入购物车、购买了的东西 —— 日志
    # 股票市场的用户行为 —— 日志
    # 日志 就是在程序的运行过程中,人为的添加一些要打印的中间信息
    # 在程序的排错、在一些行为、结果的记录

    # import logging
    # logging.debug('debug message') #调试模式
    # logging.info('info message')#信息模式
    # logging.warning('warning message')#警告模式:不会直接程序的崩溃,可能会出现问题
    # logging.error('error message')#错误模式:出错了
    #
    # logging.critical('critical message')#批判模式 程序崩溃了的时候

    # logging 简单的配置模式
    #
    # logging.basicConfig(level=logging.DEBUG,
    # format='[%(asctime)s]%(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
    # datefmt='%Y-%m-%d %H:%M:%S',
    # filename='test.log',
    # filemode='a')

    # logging.debug('debug message')
    # logging.info('info message')
    # logging.warning('warning message')
    # logging.error('error message')
    # logging.critical('critical message')


    # try:
    # r = input('num : ')
    # int(r)
    # except:
    # logging.error('please input a num!')

    # logger = logging.getLogger() #实例化一个logger对象
    # # 创建一个handler,用于写入日志文件
    # fh = logging.FileHandler('test.log',encoding='utf-8') # 文件句柄-日志文件操作符
    # formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') #日志输出格式
    # formatter2 = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') #日志输出格式
    # fh.setFormatter(formatter) #文件句柄 绑 格式
    # logger.setLevel(logging.DEBUG) #设置日志等级,默认是Warning
    # logger.addHandler(fh) #logger 绑文件句柄
    # sh = logging.StreamHandler() #屏幕流对象
    # sh.setFormatter(formatter2)
    # logger.addHandler(sh)
    # logger.info('hello!')


    # logger = logging.getLogger()
    # fh = logging.FileHandler('test.log.20171123',encoding='utf-8')
    # logger.addHandler(fh)


    #对象的模式
    #可以随意控制往那些地方输出日志
    #可以分别控制输出到不同位置的格式
    # import logging
    # logger = logging.getLogger() #实例化一个logger对象
    # fh = logging.FileHandler('test.log',encoding='utf-8') # 文件句柄-日志文件操作符
    # formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') #日志输出格式
    # fh.setFormatter(formatter) #文件句柄 绑 格式
    # logger.setLevel(logging.DEBUG) #设置日志等级,默认是Warning
    # logger.addHandler(fh) #logger对象绑文件句柄
    # logger.info('hello!')


    #向屏幕输出
    # logger.setLevel(logging.DEBUG) #设置日志等级
    # formatter2 = logging.Formatter('%(asctime)s - %(name)s [%(levelname)s] %(message)s') #日志输出格式
    # sh = logging.StreamHandler() #屏幕流对象 相对于文件句柄
    # sh.setFormatter(formatter2) # 绑定格式到日志文件操作符
    # logger.addHandler(sh) # 绑定屏幕流对象到logging对象
    # logging.info("我是你爸爸")





    # logging.basicConfig()函数中可通过具体参数来更改logging模块默认行为,可用参数有:
    #
    # filename:用指定的文件名创建FiledHandler,这样日志会被存储在指定的文件中。
    # filemode:文件打开方式,在指定了filename时使用这个参数,默认值为“a”还可指定为“w”。
    # format:指定handler使用的日志显示格式。
    # datefmt:指定日期时间格式。
    # level:设置rootlogger(后边会讲解具体概念)的日志级别
    # stream:用指定的stream创建StreamHandler。可以指定输出到sys.stderr,sys.stdout或者文件(f=open(‘test.log’,’w’)),默认为sys.stderr。若同时列出了filename和stream两个参数,则stream参数会被忽略。
    #
    # format参数中可能用到的格式化串:
    # %(name)s Logger的名字
    # %(levelno)s 数字形式的日志级别
    # %(levelname)s 文本形式的日志级别
    # %(pathname)s 调用日志输出函数的模块的完整路径名,可能没有
    # %(filename)s 调用日志输出函数的模块的文件名
    # %(module)s 调用日志输出函数的模块名
    # %(funcName)s 调用日志输出函数的函数名
    # %(lineno)d 调用日志输出函数的语句所在的代码行
    # %(created)f 当前时间,用UNIX标准的表示时间的浮 点数表示
    # %(relativeCreated)d 输出日志信息时的,自Logger创建以 来的毫秒数
    # %(asctime)s 字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒
    # %(thread)d 线程ID。可能没有
    # %(threadName)s 线程名。可能没有
    # %(process)d 进程ID。可能没有
    # %(message)s用户输出的消息

    # 首先让用户输入账号密码
    #对密码加密 写到文件里 完成用户注册
    #再次让用户输入账号密码, 密码和文件中的密码进行匹配 匹配成功则登录成功
    import hashlib
    # name = input('请输入用户名:')
    # pwd = input('请输入密码:')
    # md5_obj = hashlib.md5()
    # md5_obj.update(pwd.encode('utf-8'))
    # # print(md5_obj.hexdigest())
    # f = open('haha','a',encoding='utf-8')
    # f.write(name+' '+md5_obj.hexdigest()+'\n')
    # f.close()
    count = 3
    while count>0 :
    s = 2
    name = input('请输入用户名:').strip()
    pwd = input('请输入密码:').strip()
    md5_obj = hashlib.md5()
    md5_obj.update(pwd.encode('utf-8'))
    ret = md5_obj.hexdigest()
    f = open('haha', 'r', encoding='utf-8')
    for i in f:
    # print('sgjhg')
    i = i.strip()
    i = i.split(' ')
    if ret == i[1] and name == i[0]:
    print('登陆成功')
    s = 1
    break
    if s == 2:
    print('输入错误')
    count= count-1
    if s == 1:
    break

    转载于:https://www.cnblogs.com/zhuchuanbo/p/7886883.html

    展开全文
  • 在上一篇文章 【算法大杂烩】常见算法的归类和总结——非... 常见的信息摘要算法有哪些以及它们的特性和区别是什么? 信息摘要算法的应用场景有哪些? 什么是信息摘要算法?  信息摘要算法是一种对“信息”进行...
  • python 摘要算法

    2018-08-30 17:00:00
    一、概述:  摘要算法主要特征是加密过程不需要密钥,并且加密的数据无法解密,只有输入相同的明文数据经过相同的摘要算法才能得到相同的密文。摘要算法主要应用在“数字... MD5算法最常见的摘要算法,生成速度...
  • Python的hashlib提供了常见的摘要算法,如 MD5,SHA1,SHA512 等等。 提示: 要注意摘要算法不是加密算法,不能用于加密(因为无法通过摘要反推明文),只能用于防篡改,但是它的单向计算特性决定了可以在不存储...
  • 摘要算法简介Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。什么是摘要算法呢?摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)...
  • python摘要算法简介

    2019-06-02 12:12:01
    Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。 什么是摘要算法呢?摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。 举个...
  • Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。 什么是摘要算法呢?摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。 举个...
  • Python摘要算法

    千次阅读 2017-11-07 11:50:32
    Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等直接上代码:#coding=utf-8 import hashlib file = open('./linux.zip') data = file.read() #获取文件内容 print type(data) #print data #打印出的...
  • python md5 salt 摘要算法

    2019-12-12 17:26:05
    Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。别的语言也都是通用的加密算法。 摘要算法:通过摘要函数f()对任意长度的数据data计算出固定长度的摘要digest,目的是为了发现原始数据是否被人篡改过。 MD5...
  • 常见的安全算法

    万次阅读 2017-03-28 10:00:36
    一、数字摘要算法 数字摘要也称为消息摘要,它是一个唯一对应一个消息或文本固定长度值,它由一个单向Hash函数对消息进行计算而产生。如果消息在传递途中改变了,接收者通过对收到消息采用相同Hash重新计算...
  • Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。 什么是摘要算法呢?摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。 摘要...
  • # python的hashlib提供了常见的摘要算法,如md5(md5算法),sha1等等。摘要:digest # 摘要算法又称哈希算法、散列算法。 # 它通过一个函数,把任意长度的数据(明文)转换为一个长度固定的数据串(密文)(通常用16...
  • Python的 hashlib 提供了常见的摘要算法,如 MD5,SHA1 等等。什么是摘要算法呢?摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。MD5...
  • hashlib模块--摘要算法

    2017-08-17 16:21:00
    Python的hashlib提供了常见的摘要算法;MD5,SHA()等。 摘要算法,又称哈希算法,散列算法。通过一个函数,吧任意长度的字符串转换为固定长度的字符串(16进制) 摘要算法就是通过摘要函数f()对任意长度的数据...
  • 目录 摘要算法简介 md5 使用jdk内置方法实现md5加密 使用bc方式实现md5加密 使用cc方式实现md5加密 ...实现sha256代码和sha1代码相似 ...摘要算法简介 ... 摘要算法,也是加密算法一种,还有另外一种...
  • 摘要算法就是对指定的数据进行一系列的计算,然后得出一个串内容,该内容就是该数据的摘要。不同的数据产生的摘要是不同的,所以,可以用它来进行一些数据加密的工作:通过对比两个数据加密后的摘要是否相同,来判断...
  •  Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。 什么是摘要算法呢?摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。 ...
  • Python的hashlib提供了常见的摘要算法,如MD5,SHA1,SHA224, SHA256, SHA384, SHA512等算法。 什么是摘要算法呢?摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串...
  • Python3中的hashlib提供了常见的摘要算法,如MD5、SHA1等等。 【概述】:什么是摘要算法呢?摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串...
  •  数据摘要算法是密码学算法中非常重要一个分支,它通过对所有数据提取指纹信息以实现数据签名、数据完整性校验等功能,由于其不可逆性,有时候会被用做敏感信息加密。数据摘要算法也被称为哈希(Hash)算法或...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,151
精华内容 460
关键字:

常见的摘要算法