python的一些加密方法及python 加密模块


Posted in Python onJuly 11, 2019

1base64

Python内置的base64模块可以实现base64、base32、base16、base85、urlsafe_base64的编码解码,python 3.x通常输入输出都是二进制形式,2.x可以是字符串形式。

base64模块的base64编码、解码调用了binascii模块,binascii模块中的b2a_base64()函数用于base64编码,binascii模块中的a2b_base64()函数用于base64解码。

import base64
s = 'hello, world'
base64.b64encode(bytes(s, 'ascii'))
b'aGVsbG8sIHdvcmxk'
base64.b64decode(base64.b64encode(bytes(s, 'ascii')))
b'hello, world'

2.md5

Python2.x中有md5模块,此模块调用了hashlib模块,python3.x已中将md5取掉,直接通过调用hashlib模块来进行md5。Python2.x可以直接使用unicode字符,但3.x中必须使用二进制字节串。

import hashlib
m = hashlib.md5()
m.update(b'hello, world!')
m.hexdigest()
'3adbbad1791fbae3ec908894c4963870'

3.sha1

类似于MD5

import hashlib
m = hashlib.sha1()
m.update(b'hello, world!')
m.hexdigest()
'1f09d30c707d53f3d16c530dd73d70a6ce7596a9'

4.crc32

计算指定内容的crc32校验值,可以用zlib以及binascii模块的crc32函数.

import zlib
import binascii
s = b'hello, world!'
zlib.crc32(s)
1486392595
binascii.crc32(s)
1486392595

ps:下面看下Python之加密模块

hashlib模块

•加密方式以md5方式加密举例
•是标准模块,直接导入即可
•还有其他的加密方式,比如:.sha1()、.sha224()、.sha256()等,加密后的字符串长度更长,安全性更高

一、加密步骤

1、字符串先转成二进制类型

使用.encode()方法转成二进制类型

import hashlib
password='123456'
print(password.encode())#字符串不能直接加密,要先转成二进制类型的才可以加密
#结果为:b'123456'

2、使用加密方法

使用.hexdigest()方法输出加密后内容

import hashlib
password='123456'
m=hashlib.md5(password.encode()) #先转成二进制,再加密
#print(dir(m)) #由于这个加密模块pycharm提供不了提示方法,所以如果想知道都有什么方法,可以使用内置函数dir(),使用这条语句就能打印出所有方法了
print(m.hexdigest())

3、打印加密后的内容

使用dir()内置函数显示该变量的所有方法

由于该模块pycharm无法提供提示方法,即输入m“.”不出来方法,所以可以使用内置函数dir(),将所有方法打印出来。

#print(dir(m)) #由于这个加密模块pycharm提供不了提示方法,所以如果想知道都有什么方法,可以使用内置函数dir(),使用这条语句就能打印出所有方法了
print(m.hexdigest())

二、加密相关

1、检验加密结果

•由于md5方式加密完的字符串无论原字符串有多长都是32位,因此可以使用len()方法检验是否加密成功:

print(len(m.hexdigest())

2、md5加密之后是不可逆的
•网络上可以解密的原理是撞库,即:将常用的密码加密完存在数据库里,然后直接搜库。

如果输入的加密后密码碰巧数据库里有,就能把对应的加密前密码返回给你,并不是真正的解密。

3、其他的加密方式

本文的加密方式以md5方式加密举例,还有其他的加密方式,比如:.sha1()、.sha224()、.sha256()等,加密后的字符串长度更长,安全性更高。

m=hashlib.sha1(password.encode())#不同的加密方式
m=hashlib.sha224(password.encode()) #不同的加密方式
m=hashlib.sha256(password.encode()) #不同的加密方式

三、加盐

 原理:

如果要对password=123456加密,这个明文密码太简单,容易撞库解密,所以在123456之后随机加一个字符串,比如abc,这样实际是对123456abc进行加密,如果不知道abc这个字符串,反解的可能性降低,安全性更高。这样的一个字符串就叫做盐。

四、实际应用

#实现加密:传入一个值,如果有盐值,则加盐加密;否则直接加密
def my_md5(s:str,salt=None):
  s=str(s)
  if salt:
    s=s+salt
  m=hashlib.md5(s.encode())
  return m.hexdigest()

总结

以上所述是小编给大家介绍的python的一些加密方法及python 加密模块 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python结合opencv实现人脸检测与跟踪
Jun 08 Python
python实现爬取千万淘宝商品的方法
Jun 30 Python
Python删除空文件和空文件夹的方法
Jul 14 Python
浅谈Python 中整型对象的存储问题
May 16 Python
python中redis的安装和使用
Dec 04 Python
Python3多目标赋值及共享引用注意事项
May 27 Python
selenium+python环境配置教程详解
May 28 Python
使用Python实现毫秒级抢单功能
Jun 06 Python
Python数据处理篇之Sympy系列(五)---解方程
Oct 12 Python
Python collections中的双向队列deque简单介绍详解
Nov 04 Python
Python中bisect的用法及示例详解
Jul 20 Python
Python基于argparse与ConfigParser库进行入参解析与ini parser
Feb 02 Python
kali中python版本的切换方法
Jul 11 #Python
python按比例随机切分数据的实现
Jul 11 #Python
Kali Linux安装ipython2 和 ipython3的方法
Jul 11 #Python
Python循环结构的应用场景详解
Jul 11 #Python
python列表,字典,元组简单用法示例
Jul 11 #Python
python实现数据分析与建模
Jul 11 #Python
新手如何发布Python项目开源包过程详解
Jul 11 #Python
You might like
php处理json格式数据经典案例总结
2016/05/19 PHP
PHP中header函数的用法及其注意事项详解
2016/06/13 PHP
thinkphp实现附件上传功能
2017/05/26 PHP
Thinkphp整合阿里云OSS图片上传实例代码
2019/04/28 PHP
总结AJAX相关JS代码片段和浏览器模型
2007/08/15 Javascript
JS 进度条效果实现代码整理
2011/05/21 Javascript
Jquery下:nth-child(an+b)的使用注意
2011/05/28 Javascript
getElementByIdx_x js自定义getElementById函数
2012/01/24 Javascript
jquery中load方法的用法及注意事项说明
2014/02/22 Javascript
javascript引用类型之时间Date和数组Array
2015/08/27 Javascript
总结jQuery插件开发中的一些要点
2016/05/16 Javascript
JS提示:Uncaught SyntaxError: Unexpected token ILLEGAL错误的解决方法
2016/08/19 Javascript
Vue组件开发之LeanCloud带图形校验码的短信发送功能
2017/11/07 Javascript
深度了解vue.js中hooks的相关知识
2019/06/14 Javascript
nodejs各种姿势断点调试的方法
2020/06/18 NodeJs
详解JavaScript中new操作符的解析和实现
2020/09/04 Javascript
[46:00]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第一局
2016/03/03 DOTA
Python类的基础入门知识
2008/11/24 Python
使用python编写脚本获取手机当前应用apk的信息
2014/07/21 Python
python清除指定目录内所有文件中script的方法
2015/06/30 Python
对python_discover方法遍历所有执行的用例详解
2019/02/13 Python
Python with关键字,上下文管理器,@contextmanager文件操作示例
2019/10/17 Python
python实现udp聊天窗口
2020/03/31 Python
预备党员党课思想汇报
2014/01/13 职场文书
毕业生求职信的经典写法
2014/01/31 职场文书
《掌声》教学反思
2014/02/23 职场文书
模具专业毕业推荐信
2014/03/08 职场文书
应届硕士毕业生自荐信
2014/05/26 职场文书
机关中层领导干部群众路线教育实践活动个人对照检查材料
2014/09/24 职场文书
学习普通话的体会
2014/11/07 职场文书
中学教师读书笔记
2015/07/01 职场文书
2015年中学图书馆工作总结
2015/07/22 职场文书
公司周年庆寄语
2019/06/21 职场文书
2022新作动画《福星小子》释出宣传影片 加入内田真礼&宫野真守配音演出
2022/04/08 日漫
CSS link与@import的区别和用法解析
2023/05/07 HTML / CSS
HTML中link标签属性的具体用法
2023/05/07 HTML / CSS