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 相关文章推荐
利用打码兔和超人打码自封装的打码类分享
Mar 16 Python
使用Python从有道词典网页获取单词翻译
Jul 03 Python
Python实现的字典值比较功能示例
Jan 08 Python
Python加载带有注释的Json文件实例
May 23 Python
python创建ArcGIS shape文件的实现
Dec 06 Python
python多进程重复加载的解决方式
Dec 13 Python
pytorch构建多模型实例
Jan 15 Python
通过实例解析python描述符原理作用
Jan 22 Python
使用Tensorflow实现可视化中间层和卷积层
Jan 24 Python
浅谈pycharm导入pandas包遇到的问题及解决
Jun 01 Python
anaconda升级sklearn版本的实现方法
Feb 22 Python
Python带你从浅入深探究Tuple(基础篇)
May 15 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
BBS(php & mysql)完整版(八)
2006/10/09 PHP
discuz authcode 经典php加密解密函数解析
2020/07/12 PHP
PHP 开发环境配置(Zend Studio)
2010/04/28 PHP
10个实用的PHP代码片段
2011/09/02 PHP
php提示Call-time pass-by-reference has been deprecated in的解决方法[已测]
2012/05/06 PHP
php如何计算两坐标点之间的距离
2018/12/29 PHP
PHP抽象类和接口用法实例详解
2019/07/20 PHP
PHP的垃圾回收机制代码实例讲解
2021/02/27 PHP
一个关于javascript匿名函数的问题分析
2012/03/30 Javascript
使用js在页面中绘制表格核心代码
2013/09/16 Javascript
jquery中radio checked问题
2015/03/16 Javascript
原生js图片轮播效果实现代码
2016/10/19 Javascript
JavaScript如何实现图片懒加载(lazyload) 提高用户体验(增强版)
2016/11/30 Javascript
Angularjs中的ui-bootstrap的使用教程
2017/02/19 Javascript
JavaScript基本类型值-Undefined、Null、Boolean
2017/02/23 Javascript
深入理解js A*寻路算法原理与具体实现过程
2018/12/13 Javascript
JS实现的杨辉三角【帕斯卡三角形】算法示例
2019/02/26 Javascript
详解微信小程序文件下载--视频和图片
2019/04/24 Javascript
超轻量级的js时间库miment使用解析
2019/08/02 Javascript
Fiddler如何抓取手机APP数据包
2016/01/22 Python
pandas DataFrame实现几列数据合并成为新的一列方法
2018/06/08 Python
python实现简单的单变量线性回归方法
2018/11/08 Python
详解Python用户登录接口的方法
2019/04/17 Python
Pycharm使用之设置代码字体大小和颜色主题的教程
2019/07/12 Python
Django密码系统实现过程详解
2019/07/19 Python
Python对wav文件的重采样实例
2020/02/25 Python
浅谈pycharm导入pandas包遇到的问题及解决
2020/06/01 Python
国际领先的在线时尚服装和配饰店:DressLily
2019/03/03 全球购物
德国婴儿服装和婴儿用品购买网站:Baby Sweets
2019/12/08 全球购物
自主招生自荐信格式
2013/12/03 职场文书
博士学位自我鉴定范文
2013/12/26 职场文书
爱国主义教育活动总结
2014/05/07 职场文书
会议室标语
2014/06/21 职场文书
群众路线教育实践活动对照检查材料
2014/09/22 职场文书
2015年机关党委工作总结
2015/05/23 职场文书
【海涛解说】pis亲自推荐,其实你从来不会玩NW
2022/04/01 DOTA