python中的hashlib和base64加密模块使用实例

yipeiwu_com6年前Python基础

看到好几位博主通过对模块的各个击破学习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还有诸多的第三方模块提供更多的加密方式,以后学到的时候再说。

相关文章

numpy.ndarray 实现对特定行或列取值

numpy.ndarray 实现对特定行或列取值

如下所示: import numpy as np b = [[1,2,0], [4,5,0], [7,8,1], [4,0,1], [7,11,1] ] a=np.array...

python二元表达式用法

二元表达式: wide=1 new_w = 299 if not wide else 28 print(new_w) new_w = 299 if wide>0 else 28...

推荐下python/ironpython:从入门到精通

最近无聊,下了个visual studio 2005的furture,发现里面多了对动态语言的支持.其实很早就想摆弄下python,正好是个机会.一开始是想学ironpython,但后来...

python实现的各种排序算法代码

复制代码 代码如下:# -*- coding: utf-8 -*-# 测试各种排序算法# link:www.jb51.net# date:2013/2/2 #选择排序def select...

Python和Ruby中each循环引用变量问题(一个隐秘BUG?)

虽然这个问题我是在 Python 里遇到的,但是用 Ruby 解释起来比较容易一些。在 Ruby 里,遍历一个数组可以有很多种方法,最常用的两种无非是 for 和 each:复制代码 代...