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不可逆加密 和 base64算法加密解密的更多相关文章

  1. MD5加密、时间戳转换、base64算法加密、解密

    #region MD5加密 /// <summary> /// MD5加密 /// </summary> /// <param name="str"& ...

  2. AES加密和Base64混合加密

    /// <summary> /// AES加密方法(AES加密和Base64混合加密) /// </summary> /// <param name="toEn ...

  3. hash模块 hashlib 和hmac

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

  4. python实现base64算法加密

    python本身有base64加密的模块,不过是用C写的,封装成了.so文件,无法查看源码,本着学习的心态,自己实现了一遍,算法 原理参考 浅谈Base64编码算法. 代码如下: # coding:u ...

  5. js_md5加密和base64的加密解密

    1.最近有些人在爬我们公司的数据,然有了这个md5加密的小需求.为什么叫小需求呢?嗯,之前没做过,会以为很复杂. 其实,是想多了. 2.前端md5加密,其实也并不是安全的,因为代码是可见的.也就是说, ...

  6. c# base64算法解密

    /// <summary> /// 将字符串使用base64算法加密 /// </summary> /// <param name="code_type&quo ...

  7. python----常用模块(hashlib加密,Base64,json)

    一.hashlib模块 1.1 hashlib模块,主要用于加密相关的操作,在python3的版本里,代替了md5和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, S ...

  8. Python模块——HashLib与base64

    摘要算法(hashlib) Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度 ...

  9. 笔记-算法-hash以及hashlib使用

    算法-hash和hash表以及hashlib使用 1.      简介 1.1.    hash Hash(散列/哈希),就是把任意长度的输入(预映射pre-image)通过散列算法变换成固定长度的输 ...

随机推荐

  1. centos7配置网桥

    在Centos7上玩KVM的话一定要配置网桥的: [root@localhost nb]# ls /etc/sysconfig/network-scripts ifcfg-8866 ifdown if ...

  2. 菜鸟学EJB(一)——第一个实例

    EJB用了那么长时间了,从来没写过关于它的东西,挺对不住它的.今天先写一个简单的小实例,虽然小但是却能体现出EJB的核心——分布式.我们可以将业务逻辑的接口跟实现部署到一台机器上,将调用它们的客户端部 ...

  3. android studio : clang++.exe: error: invalid linker name in argument '-fuse-ld=bfd

    公司jenkins上的C++编译器最近换成了clang,今天更新了代码发现本地的C/C++代码用NDK编译不过了,提示: “clang++.exe: error: invalid linker nam ...

  4. javascript基础拾遗(六)

    1.Date内置对象 获取系统时间 var now = new Date() console.log(now) console.log(now.getDate()) console.log(now.g ...

  5. Java 编程下字符串的 16 位、32位 MD5 加密

    package cn.sunzn.md5; import java.security.MessageDigest; import java.security.NoSuchAlgorithmExcept ...

  6. Windows下GUI编程——窗口

    windows下创建一个基于GUI的窗口程序很简单,使用MFC或者Win32 API都可以实现.本文简单整理下windows API创建GUI应用程序的基本编码框架. 比较常见的窗口包括:桌面窗口.应 ...

  7. Ubuntu 系统下卸载 IntelliJ IDEA

    参考:http://blog.csdn.net/csdnones/article/details/50449947 卸载只需要删除解压出来的目录就行了,然后删除/home/你用登录名/IntelliJ ...

  8. django —— Celery实现异步和定时任务

    1. 环境 python==2.7 djang==1.11.2 # 1.8, 1.9, 1.10应该都没问题 celery-with-redis==3.0 # 需要用到redis作为中间人服务(Bro ...

  9. 【论文笔记】Social Role-Aware Emotion Contagion in Image Social Networks

    Social Role-Aware Emotion Contagion in Image Social Networks 社会角色意识情绪在形象社交网络中的传染 1.摘要: 心理学理论认为,情绪代表了 ...

  10. iOS开发中的压缩以及解压

    事实上,在iOS开发中,压缩与解压,我都是采用第三方框架SSZipArchive实现的 gitHub地址:   https://github.com/ZipArchive/ZipArchive 上面有 ...