hash模块 hashlib不可逆加密 和 base64算法加密解密
hashlib模块
- 用于加密相关的操作,代替md5模块和sha模块,主要提供SHA1,SHA224,SSHA256,SHA384,SHA512,MD5算法
- 直接看代码案例:
---------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算法加密解密的更多相关文章
- MD5加密、时间戳转换、base64算法加密、解密
#region MD5加密 /// <summary> /// MD5加密 /// </summary> /// <param name="str"& ...
- AES加密和Base64混合加密
/// <summary> /// AES加密方法(AES加密和Base64混合加密) /// </summary> /// <param name="toEn ...
- hash模块 hashlib 和hmac
hashlib模块 用于加密相关的操作,代替md5模块和sha模块,主要提供SHA1,SHA224,SSHA256,SHA384,SHA512,MD5算法 直接看代码案例: ---------md5- ...
- python实现base64算法加密
python本身有base64加密的模块,不过是用C写的,封装成了.so文件,无法查看源码,本着学习的心态,自己实现了一遍,算法 原理参考 浅谈Base64编码算法. 代码如下: # coding:u ...
- js_md5加密和base64的加密解密
1.最近有些人在爬我们公司的数据,然有了这个md5加密的小需求.为什么叫小需求呢?嗯,之前没做过,会以为很复杂. 其实,是想多了. 2.前端md5加密,其实也并不是安全的,因为代码是可见的.也就是说, ...
- c# base64算法解密
/// <summary> /// 将字符串使用base64算法加密 /// </summary> /// <param name="code_type&quo ...
- python----常用模块(hashlib加密,Base64,json)
一.hashlib模块 1.1 hashlib模块,主要用于加密相关的操作,在python3的版本里,代替了md5和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, S ...
- Python模块——HashLib与base64
摘要算法(hashlib) Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度 ...
- 笔记-算法-hash以及hashlib使用
算法-hash和hash表以及hashlib使用 1. 简介 1.1. hash Hash(散列/哈希),就是把任意长度的输入(预映射pre-image)通过散列算法变换成固定长度的输 ...
随机推荐
- PostgreSQL判断是否为空coalesce
coalesce(expr1,expr2,expr3...) 直到找到一个非null值返回,右边的表达式则不参与运算:若所有为null,返回null. eg:判断json是否包含某属性,若无,则取默认 ...
- LoadingController
--local MainSceneConfig = require "res.scripts.configs.MainSceneConfig" -- 暂时添加一个临时配置文件 -- ...
- OpenVSwitch 硬件加速浅谈
https://zhuanlan.zhihu.com/p/57870521 本文首发SDNLAB. 现代的虚拟化技术使得开发和部署高级网络服务变得更加简单方便.基于虚拟化的网络服务,具有多样性,低成本 ...
- Scala解码base64编码的URL提示Last unit does not have enough valid bits
问题描述 开始使用Base64.getMimeDecoder().decode(base_url).map(_.toChar).mkString去解码,部分数据也提示如题的错误 然后尝试使用Base6 ...
- android 修改listview item view 的方法
具体的解答办法很简单: 代码如下 : 1.获取需要更新的view int visiblePosition = mListView.getFirstVisiblePosition(); View vie ...
- Spring Boot Application 事件和监听器
https://www.cnblogs.com/fdzfd/p/7872909.html ***************************************************** 一 ...
- LeetCode: Search in Rotated Sorted Array 解题报告
Search in Rotated Sorted Array Suppose a sorted array is rotated at some pivot unknown to you before ...
- tf.square
tf.square square( x, name=None ) 功能说明: 计算张量对应元素平方 参数列表: 参数名 必选 类型 说明 x 是 张量 是 half, float32, float64 ...
- fzu2158
http://acm.fzu.edu.cn/problem.php?pid=2158 在密室逃脱游戏中,大家被困在一个密室中,为了逃出密室,需要找到正确的数字密码,于是大家分头行动,分别找到了密码的子 ...
- Silverlight跨域访问wcf
添加文件名为“clientaccesspolicy.xml”的文件 内容: <?xml version="1.0" encoding="utf-8"?&g ...
