python常用模块——hashlib

加密模块 hashlib

python中的hashlib模块主要提供了两种加密算法;一种的md5,另一种是sha;

方法:

1. md5 = openssl_md5(...)

返回一个md5对象;把字符串转换为字节形式;

2. sha1 = openssl_sha1(...)

返回一个sha1对象;把字符串转换为字节形式;

3. sha224 = openssl_sha224(...)

返回一个sha224对象;把字符串转换为字节形式;

4. sha256 = openssl_sha256(...)

返回一个sha256对象;把字符串转换为字节形式;

5. sha384 = openssl_sha384(...)

返回一个sha384对象;把字符串转换为字节形式;

6. sha512 = openssl_sha512(...)

返回一个sha512对象;把字符串转换为字节形式;

对于sha算法,越高,算法越复杂,安全度越高;但是加密效率也越低;sha256使用的是最多的;

7. new = _hashnew(name, data=b‘‘, **kwargs)

返回一个新的hash对象(根据name命名的算法);加密数据必须是字节(二进制)形式;

8. pbkdf2_hmac(...)

pbkdf2_hmac(hash_name, password, salt, iterations, dklen=None) -> key
基于密码的密钥派生函数2以HMAC为伪随机函数。

加密对象的方法

1. update(arg)

用哈希表中的字节更新哈希对象。重复调用 相当于 将所有参数串联在一起单个调用;详见后面案例;

2. digest()

以二进制形式返回加密字符;即从加密对象中取字符串加密后的密文(二进制形式);

3. hexdigest()

以字符形式返回加密字符;即从加密对象中取字符串加密后的密文(字符串形式);

4. copy()

返回一个哈希对象的副本;

案例

下面以md5加密算法为例;其他算法一样;

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import hashlib

m=hashlib.md5()
print(m)                            #  输出 < md5 HASH object @ 0x00000245E45E03C8>
m.update("wjz".encode(‘utf8‘))
m.update("wjk".encode(‘utf8‘))
print(m.hexdigest())                #  输出 0e48d6f05b543d8b513f918eb537b533
print(m.digest())                   #  输出 b‘\x0eH\xd6\xf0[T=\x8bQ?\x91\x8e\xb57\xb53‘

m2=hashlib.md5()
m2.update(‘wjzwjk‘.encode(‘utf8‘))
print(m2.hexdigest())               #  输出 0e48d6f05b543d8b513f918eb537b533
print(m2.digest())                  #  输出 b‘\x0eH\xd6\xf0[T=\x8bQ?\x91\x8e\xb57\xb53‘

从上面案例中,可以发现: 两次update字符串‘wjz‘‘wjk‘,等效于 一次update字符串‘wjzwjk‘;

原文地址:https://www.cnblogs.com/hacker001/p/10094757.html

时间: 2024-08-09 04:01:21

python常用模块——hashlib的相关文章

Python常用模块——hashlib加密

Python常用模块--hashlib加密 一.HASH Hash,一般翻译为"散列",也有直接音译为"哈希"的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值.这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列程相同的输出,而不可能从散列值来唯一的确定输入值. 简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数. HASH主要用于信息安全领域中加密算

python - 常用模块 - hashlib模块

python3中的hashlib库主要是为大家提供了python中常用的加密方式 其中SHA1官方不再支持,不建议用.md5()的安全性不如SHA2,所以推荐使用SHA2做加密算法 hashlib里面的加密方式都是单向加密,没有反加密方式,所以在使用时,比如密码验证,在数据库里面存储的是加密后的值,再把用户输入的密码进行相同加密方式,再对比 hashlib里面主要提供 md5, sha1, sha224, sha256, sha384, sha512 算法各种加密算法在使用上,只是声明加密方式的

Python常用模块-摘要算法(hashlib)

Python常用模块-摘要算法(hashlib) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MD5算法参数详解 1.十六进制md5算法摘要 1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 #@author :yinzhengjie 4 #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%

python 常用模块 time random os模块 sys模块 json &amp; pickle shelve模块 xml模块 configparser hashlib subprocess logging re正则

python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib  subprocess logging re正则 转自老男孩老师Yuan:http://www.cnblogs.com/yuanchenqi/articles/5732581.html 模块&包(* * * * *) 模块(modue)的概念: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,

python——常用模块

time.asctime(time.localtime(1234324422)) python--常用模块 1 什么是模块: 模块就是py文件 2 import time #导入时间模块 在Python中,通常有这三种方式来表示时间:时间戳.元组(struct_time).格式化的时间字符串: (1)时间戳(timestamp) :通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们运行"type(time.time())",返回的是float类型.

Python常用模块大全

Python常用模块大全 os模块: os.remove() 删除文件 os.unlink() 删除文件 os.rename() 重命名文件 os.listdir() 列出指定目录下所有文件 os.chdir() 改变当前工作目录 os.getcwd() 获取当前文件路径 os.mkdir() 新建目录 os.rmdir() 删除空目录(删除非空目录, 使用shutil.rmtree()) os.makedirs() 创建多级目录 os.removedirs() 删除多级目录 os.stat(f

python之模块hashlib(提供了常见的摘要算法,如MD5,SHA1等等)

# -*- 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.

实战篇一 python常用模块和库介绍

# [email protected] coding: utf-8 [email protected] -- Python 常用模块和库介绍 第一部分:json模块介绍 import json 将一个Python数据结构转换为JSON: dict_ = {1:2, 3:4, "55":"66"} # test json.dumps print type(dict_), dict_ json_str = json.dumps(dict_) print "js

python——常用模块2

python--常用模块2 1 logging模块 1.1 函数式简单配置 import logging logging.debug("debug message") logging.info("info message") logging.warning("warning message") logging.error("error message") logging.critical('critical message')