python中的hashlib和base64加密模块使用实例
看到好几位博主通过对模块的各个击破学习python,我也效法一下,本篇说一下python中加密涉及到的模块。
hashlib
hashlib模块支持的加密算法有md5 sha1 sha224 sha256 sha384 sha512(加密原理请参考此处),使用起来也很简单。
以md5加密为例,有两种方法:
一、 追加模式
代码示例:
import hashlib #引入hashlib模块
mm = hashlib.md5() #创建一个md5对象
mm.update("Hello") #通过update方法加密文本
mm.update(" world!") #追加,这两句相当于 mm.update("Hello world!")
print mm.digest() #输出加密后的二进制数据
print mm.hexdigest() #输出加密后的十六进制数据
二、 一句话
如果不需要追加,只用加密一段文本,可用这种形式,代码示例:
import hashlib
hashlib.new("md5","Hello world!").digest()
此外,md5等算法对象还提供了digest_size和block_size等属性,指示加密后文本的大小。
对于其他的加密算法,只要在代码中替换「md5」即可,不再举例。
base64
这个模块提供的加密算法并不安全,但十分简单,有时候会用到。
代码示例:
import base64
a = "Hello world!"
b = base64.encodestring(a) #加密
c = base64.decodestring(b) #解密
print a==c
python还有诸多的第三方模块提供更多的加密方式,以后学到的时候再说。
相关推荐
-
python字符串加密解密的三种方法分享(base64 win32com)
1. 最简单的方法是用base64: 复制代码 代码如下: import base64 s1 = base64.encodestring('hello world')s2 = base64.decodestring(s1)print s1,s2 # aGVsbG8gd29ybGQ=\n# hello world Note: 这是最简单的方法了,但是不够保险,因为如果别人拿到你的密文,也可以自己解密来得到明文 2. 第二种方法是使用win32com.client 复制代码 代码如下: import
-
python实现RSA加密(解密)算法
RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO推荐为公钥数据加密标准. 今天只有短的RSA钥匙才可能被强力方式解破.到2008年为止,世界上还没有任何可靠的攻击RSA算法的方式.只要其密钥的长度足够长,用RSA加密的信息实际上是不能被解破的.但在分布式计算和量子计算机理论日趋成熟的今天,RSA加密安全性受到了挑战. RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥.
-
python基于pyDes库实现des加密的方法
本文实例讲述了python基于pyDes库实现des加密的方法.分享给大家供大家参考,具体如下: 下载及简介地址:https://twhiteman.netfirms.com/des.html 如需要在python中使用des加密,可以直接使用pyDes库加密,该库提供了CBC和ECB两种加密方式. 1.Windows下安装 下载后pyDes-x.x.x.zip并解压后,里面有setup.py文件,使用命令 setup.py --help可查看详细使用. 你可以使用命令python setup.
-
Python的加密模块md5、sha、crypt使用实例
MD5(Message-Digest Algorithm 5) 模块用于计算信息密文(信息摘要),得出一个128位的密文.sha模块跟md5相似,但生成的是160位的签名.使用方法是相同的. 如下实例是使用md5的: 复制代码 代码如下: # /usr/bin/python # -*- coding:utf-8 -*- import base64 try: import hashlib hash = hashlib.md5() except ImportError: #
-
Python常见加密模块用法分析【MD5,sha,crypt模块】
本文实例讲述了Python常见加密模块用法.分享给大家供大家参考,具体如下: 1. md5模块 md5.new([arg]) 返回一个md5对象,如果给出参数,则相当于调用了update(arg) md5.update(arg) 用string参数arg更新md5对象 md5.digest() 返回16字节的摘要,由传给update的string生成,摘要没有ascii字符 md5.hexdigest() 以16进制的形式返回摘要 import md5 a =
-
Python使用MD5加密字符串示例
Python加密模块有好几个,但无论是哪种加密方式都需要先导入相应的加密模块然后再使用模块对字符串加密. 先导入md5加密所需模块: 复制代码 代码如下: import hashlib 创建md5对象 复制代码 代码如下: m = hashlib.md5() 生成加密串,其中 password 是要加密的字符串 复制代码 代码如下: m.update('password') 获取加密串 复制代码 代码如下: psw = m.hexdigest() 输出 复制代码 代码如下: print psw
-
python文件的md5加密方法
本文实例讲述了python文件的md5加密方法.分享给大家供大家参考,具体如下: 简单模式: from hashlib import md5 def md5_file(name): m = md5() a_file = open(name, 'rb') #需要使用二进制格式读取文件内容 m.update(a_file.read()) a_file.close() return m.hexdigest() if __main__ == '__init__': print md5_file('d:/
-
Python使用PyCrypto实现AES加密功能示例
本文实例讲述了Python使用PyCrypto实现AES加密功能.分享给大家供大家参考,具体如下: #!/usr/bin/env python from Crypto.Cipher import AES import base64 import os # the block size for the cipher object; must be 16, 24, or 32 for AES BLOCK_SIZE = 32 # the character used for padding--with
-
Python AES加密模块用法分析
本文实例讲述了Python AES加密模块用法.分享给大家供大家参考,具体如下: AES是新的一种加密模块.在上次介绍过在C语言中如何来OpenSSL中的DES.这次我们来看看Python自带的库如何来使用AES来加解密.其实二者的原理还是非常像,只是说在python中来做这个事情会比C语言要简单点,但是比起C#/Java还是有点点啰嗦.在C#/JAVA这种语言中,对于加密的源数据的处理,padding一般都会有完整的实现.我在上次C语言中也处理过这个问题.在python库中,也是需要自己来处理
-
python中base64加密解密方法实例分析
本文实例讲述了python中base64加密解密方法.分享给大家供大家参考.具体分析如下: 一.base64 Base64是一种基于64个可打印字符来表示二进制数据的表示方法.由于2的6次方等于64,所以每6个比特为一个单元,对应某个可打印字符.三个字节有24个比特,对应于4个Base64单元,即3个字节需要用4个可打印字符来表示.它可用来作为电子邮件的传输编码.在Base64中的可打印字符包括字母A-Z.a-z.数字0-9 ,这样共有62个字符,此外两个可打印符号在不同的系统中而不同.编码后的
-
Python加密方法小结【md5,base64,sha1】
本文实例总结了python加密方法.分享给大家供大家参考,具体如下: MD5加密: def md5(str): import hashlib m = hashlib.md5() m.update(str) return m.hexdigest() base64加密: import base64 s = '我是字符串' a = base64.b64encode(s) print a print base64.b64decode(a) 输出结果: ztLKx9fWt/u0rg== 我是字符串 sha
随机推荐
- js操作二级联动实现代码
- java asp分析各种搜索引擎的关键字,自动识别url 中关键字的编码
- JavaScript 函数模式详解及示例
- 原生js仿jquery一些常用方法(必看篇)
- Java动态代理分析及理解
- php获取中文拼音首字母类和函数分享
- ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
- php输入流php://input使用示例(php发送图片流到服务器)
- 发个自己写的表格操作类(添加,删除,排序,上移,下移)
- Javascript类型系统之undefined和null浅析
- MySQL左联多表查询where条件写法示例
- javascript对select标签的控制(option选项/select)
- ISA Server 的故障排除工具(2)
- 详解Android之图片加载框架Fresco基本使用(二)
- Android编程实现捕获程序异常退出时的错误log信息功能详解
- 从ASP过渡到ASP.net遗留的二十大积习
- PHP 多维数组排序实现代码
- Java源码解析ArrayList及ConcurrentModificationException
- MongoDB 中聚合统计计算--$SUM表达式
- PHP count()函数讲解