hashlib模块

  1. 用于加密相关的操作,代替md5模块和sha模块,主要提供SHA1,SHA224,SSHA256,SHA384,SHA512,MD5算法
  2. 直接看代码案例:

---------md5-----------

hash = hashlib.md5()
hash.update(bytes('admin',encoding='utf-8'))
hash.update(bytes('123',encoding='utf-8'))
print(hash.hexdigest()) 

print(hash.digest())

----------sha1---------

hash = hashlib.sha1()
hash.update(bytes('admin',encoding='utf-8'))
print(hash.hexdigest())

----------sha256-------

hash = hashlib.sha256()
hash.update(bytes('admin',encoding='utf-8'))
print(hash.hexdigest())

---------sha384--------

hash = hashlib.sha384()
hash.update(bytes("admin",encoding='utf-8'))
print(hash.hexdigest())

------------sha512--------

hash = hashlib.sha512()
hash.update(bytes('admin',encoding='utf-8'))
print(hash.hexdigest())

注意

以上加密算法虽然非常厉害,但有时存在缺陷,即:通过撞库可以反解。

所以,有必要对加密算法中添加自定义key再来加密

hash = hashlib.md5(bytes('790dfhdfe3',encoding='utf-8'))
hash.update(bytes('admin',encoding='utf-8'))
print(hash.hexdigest())
-------------------------------
python 内置还有一个hmac模块,它内部对我们创建key和内容进行进一步的处理然后再加密
import hmac
h = hmac.new(bytes('dfew3',encoding="utf-8"))
h.update(bytes('admin',encoding="utf-8"))
print(h.hexdigest())

计算得到文件md5值

def MD5(file):
import hashlib
md5_value = hashlib.md5()
with open(file, 'rb') as file:
while True:
data = file.read()
if not data:
break
md5_value.update(data)
return md5_value.hexdigest() ret = MD5(r"C:\Users\Administrator\Desktop\aaaa\cgss2008append.dta")
print(ret)

Base64加密解密方法

base64代码博文链接:http://www.cnblogs.com/txw1958/archive/2012/07/19/python3-base64.html

import base64

copyright = 'Copyright (c) 2012 Doucube Inc. All rights reserved.'

def main():
#转成bytes string
bytesString = copyright.encode(encoding="utf-8")
print(bytesString) #base64 编码
encodestr = base64.b64encode(bytesString)
print(encodestr)
print(encodestr.decode()) #解码
decodestr = base64.b64decode(encodestr)
print(decodestr.decode()) if __name__ == '__main__':
main()

hash模块 hashlib 和hmac的更多相关文章

  1. hash模块 hashlib不可逆加密 和 base64算法加密解密

    hashlib模块 用于加密相关的操作,代替md5模块和sha模块,主要提供SHA1,SHA224,SSHA256,SHA384,SHA512,MD5算法 直接看代码案例: ---------md5- ...

  2. python模块 加密服务hashlib,hmac

    https://docs.python.org/zh-cn/3/library/hashlib.html hashlib --安全hash和消息摘要digest hmac -- keyed-Hashi ...

  3. random、json、pickle、hashlib、hmac、shutil、shevle模块

    今日内容: 1. random 模块 2. json模块 3. pickle 模块 4.hashlib 模块 5. hmac 模块 6. shutil 模块 7. shelve 模块 1. rando ...

  4. Python之数据加密与解密及相关操作(hashlib、hmac、random、base64、pycrypto)

    本文内容 数据加密概述 Python中实现数据加密的模块简介 hashlib与hmac模块介绍 random与secrets模块介绍 base64模块介绍 pycrypto模块介绍 总结 参考文档 提 ...

  5. Python3模块: hashlib

    简介: 用于加密相关的操作,代替了md5模块和sha模块,主要提供SHA1,SHA224,SHA256,SHA384,SHA512,MD5算法. 在python3中已经废弃了md5和sha模块,简单说 ...

  6. Python 摘要算法hashlib 与hmac

    参考链接:https://www.liaoxuefeng.com/wiki/1016959663602400/1017686752491744 摘要算法(也成为哈希算法)是用来防篡改的,因为我们的即使 ...

  7. hashlib 和 hmac

    import hashlib hash = hashlib.md5([bytes('SALT_STRING', encoding='utf-8’)]) #SALT_STRING :加盐 hash.up ...

  8. python 内置模块之hashlib、hmac、uuid

    一.hashlib md5和sha算法通过消息摘要算法生成定长的消息摘要,消息摘要算法是不可逆的.但同一段消息通过摘要算法后得到的值是一样的,可一通过比对消息摘要验证数据的完整性. sha算法比MD5 ...

  9. Python第十一天 异常处理 glob模块和shlex模块 打开外部程序和subprocess模块 subprocess类 Pipe管道 operator模块 sorted函数 os模块 hashlib模块 platform模块 csv模块

    Python第十一天    异常处理  glob模块和shlex模块    打开外部程序和subprocess模块  subprocess类  Pipe管道  operator模块   sorted函 ...

随机推荐

  1. mysql 性能优化方案

    网 上有不少MySQL 性能优化方案,不过,mysql的优化同sql server相比,更为麻烦与复杂,同样的设置,在不同的环境下 ,由于内存,访问量,读写频率,数据差异等等情况,可能会出现不同的结果 ...

  2. 微信小程序购物商城系统开发系列-目录结构

    上一篇我们简单介绍了一下微信小程序的IDE(微信小程序购物商城系统开发系列-工具篇),相信大家都已经蠢蠢欲试建立一个自己的小程序,去完成一个独立的商城网站. 先别着急我们一步步来,先尝试下写一个自己的 ...

  3. C# double 四舍五入

    public static double Round(object data) { if (data == null || data == System.DBNull.Value) { return ...

  4. jsonp接口的xss防范

    防范方式也很简单,只要在header里输出类型设置为javascript即可: 1 header('Content-type: text/javascript;charset=utf-8');

  5. python文件读写操作

    操作文件时一般经历以下步骤: 打开文件 操作文件 1.打开文件: 文件句柄 = open('/path/to/file_name','pattern') pattern: r:只读模式,打开文件时默认 ...

  6. linux dd 命令详解

    dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. 名称: dd 使用权限: 所有使用者dd 这个指令在 manual 里的定义是 ...

  7. TortoiseGit的使用教程(转)

    1.windows安装TortoiseGit详细使用教程[基础篇] http://www.mamicode.com/info-detail-423481.html 2.Windows下Git与Tort ...

  8. poj1986 LCA

    Distance Queries Time Limit: 2000MS   Memory Limit: 30000K Total Submissions: 11759   Accepted: 4157 ...

  9. JavaScript零基础学习系列四

    案例分享 对象 具体的东西,在以js的眼光看所有的标签都是标签对象,对象是属性的无序集合. 创建对象有两种方式: 直接量: 构造器:所谓的构造器,其实就是函数,只不过这个函数有些特殊,因为它是用于创建 ...

  10. Git初级实践教程(图文)

    关于Git Git的由来 Linux 的创始人 Linus Torvalds 在 2005 年开发了 Git 的原型程序.当时,由于在 Linux 内核开发中使用的既有版本管理系统的开发方许可证发生了 ...