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 分析Nginx访问日志并保存到MySQL数据库实例
Mar 13 Python
Python中用altzone()方法处理时区的教程
May 22 Python
利用Python+Java调用Shell脚本时的死锁陷阱详解
Jan 24 Python
通过Python模块filecmp 对文件比较的实现方法
Jun 29 Python
python 实现提取某个索引中某个时间段的数据方法
Feb 01 Python
python 将有序数组转换为二叉树的方法
Mar 26 Python
详解python selenium 爬取网易云音乐歌单名
Mar 28 Python
在python中将list分段并保存为array类型的方法
Jul 15 Python
Tensorflow中的降维函数tf.reduce_*使用总结
Apr 20 Python
使用keras实现densenet和Xception的模型融合
May 23 Python
python中的插入排序的简单用法
Jan 19 Python
python标准库ElementTree处理xml
May 20 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全概率运算函数(优化版) Webgame开发必备
2011/07/04 PHP
php实现把数组按指定的个数分隔
2014/02/17 PHP
php多维数组去掉重复值示例分享
2014/03/02 PHP
php实现微信公众号主动推送消息
2015/12/31 PHP
PHP实现电商订单自动确认收货redis队列
2017/05/17 PHP
php微信公众号开发之翻页查询
2018/10/20 PHP
laravel5.6实现数值转换
2019/10/23 PHP
防止浏览器记住用户名及密码的简单实用方法
2013/04/22 Javascript
JS获取地址栏参数的小例子
2013/08/23 Javascript
node.js中的fs.lchmod方法使用说明
2014/12/16 Javascript
node.js开机自启动脚本文件
2014/12/24 Javascript
浅谈jQuery animate easing的具体使用方法(推荐)
2016/06/17 Javascript
Boostrap基础教程之JavaScript插件篇
2016/09/08 Javascript
angularJS利用ng-repeat遍历二维数组的实例代码
2017/06/03 Javascript
详解vue.js的事件处理器v-on:click
2017/06/27 Javascript
详解vue渲染函数render的使用
2017/12/12 Javascript
Vue如何实现响应式系统
2018/07/11 Javascript
jquery中为什么能用$操作
2019/06/18 jQuery
bootstrap 日期控件 datepicker被弹出框dialog覆盖的解决办法
2019/07/09 Javascript
python3 与python2 异常处理的区别与联系
2016/06/19 Python
Python控制多进程与多线程并发数总结
2016/10/26 Python
Python3中详解fabfile的编写
2018/06/24 Python
PyCharm更改字体和界面样式的方法步骤
2019/09/27 Python
Django-celery-beat动态添加周期性任务实现过程解析
2020/11/26 Python
通过css3动画和opacity透明度实现呼吸灯效果
2019/08/09 HTML / CSS
用css3写出气球样式的示例代码
2017/09/11 HTML / CSS
检测浏览器是否支持html5视频的代码
2013/03/28 HTML / CSS
芬兰攀岩、山地运动和户外活动用品购物网站:Bergfreunde
2016/10/06 全球购物
三陽商会官方网站:Sanyo iStore
2019/05/15 全球购物
英国羊皮鞋类领先品牌:Just Sheepskin
2019/12/12 全球购物
年终考核评语
2014/01/19 职场文书
公司采购主管岗位职责
2014/06/17 职场文书
集体生日活动方案
2014/08/18 职场文书
四查四看自我剖析材料
2014/09/19 职场文书
2014年妇产科工作总结
2014/12/08 职场文书
导游词之永泰公主墓
2019/12/04 职场文书