python中加密解密函数文档

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Python的base64模块中的加解密函数

以及加密算法

一.Base64模块简介

Base64是一种基于64个可打印字符来表示二进制数据的表示方法。Base64常用于在通常处理文本数据的场合,表示、传输、存储一些二进制数据(或不可打印的字符串)。包括MIME的email,email via MIME, 在XML中存储复杂数据。

在邮件中的用途:

在MIME格式的电子邮件中,base64可以用来将binary的字节序列数据编码成ASCII 字符序列构成的文本。使用时,在传输编码方式中指定base64。使用的字符包括大小写字母各26个,加上10个数字,和加号“+”,斜杠“/”,一共64个字符,等号“=”用来作为后缀用途。

在URL中的用途:

标准的Base64并不适合直接放在URL里传输,因为URL编码器会把标准Base64中的“/”和“+”字符变为形如“%XX”的形式,而这些“%”号在存入数据库时还需要再进行转换,因为ANSI SQL中已将“%”号用作通配符。

为解决此问题,可采用一种用于URL的改进Base64编码,它不在末尾填充'='号,并将标准Base64中的“+”和“/”分别改成了“*”和“-”,这样就免去了在URL编解码和数据库存储时所要作的转换,避免了编码信息长度在此过程中的增加,并统一了数据库、表单等处对象标识符的格式。简单的说:就是让字符串了可以安全的通过URL传输,那句就是把原先base64编码后的字符串中的+换成-,/换成_,=则保留。

另有一种用于正则表达式的改进Base64变种,它将“+”和“/”改成了“!”和“-”,因为“+”,“*”在正则表达式中都可能具有特殊含义。

加解密函数中替换符号字符的功能:

因为base64编码后的字符除了英文字母和数字外还有三个字符‘+’, ‘/’, ’ =’, 其中’=’只是为了补全编码后的字符数为4的整数,而’+’和’/’在一些情况下需要被替换的,b64encode和b64decode正是提供了这样的功能。至于什么情况下’+’和’/’需要被替换,最常见的就是对url进行base64编码的时候。urlsafe_b64encode和urlsafe_b64decode 一组,这个就是用来专门对url进行base64编解码的,实际上也是调用的前一组函数。

二.加解密函数

1.b16decode(s, casefold=False)函数

功能:解码一个Base16编码的字符串

说明:s是要解码的字符串,casefold(可选)是一个标志,指定是否输入小写字母,考虑到安全,默认值是false。这个函数会返回解码后的字符串,如果s发生错误或者不是字符串,那么返回TypeError。

2.b16encode(s)函数

功能:编码一个Base16编码的字符串

说明:s是要进行编码的字符串,函数返回编码后的字符串。

代码:结果:

3.b32decode(s, casefold=False, map01=None)函数

功能:解码一个Base32编码的字符串

说明:同b16decode(s, casefold=False),可选参数’map01’(默认是None),如果它不是None的话,数字0会被映射成字母O,数字1会被映射成字母L或者I

4.b32encode(s)函数

功能:一个字符串使用Base32编码

代码:

结果:因为有这句话

会出现如下错误:

这是因为这句话中第二个参数是False,不接收小写字母,会出现错误,第二个参数如果是True的话,接收小写字母,不会出现错误。注释掉这句话的结果是:(结果正确)

5.b645.decode(s, altchars=None)函数

功能:解码一个Base64的字符串,有关可选参数altchars请参看

替换符号字符的功能

6.b64encode(s, altchars=None)函数

功能:编码一个Base64的字符串,有关可选参数altchars请参看

替换符号字符的功能

7.decodestring(s)函数

功能:解码一个字符串,它要包含一行或多行base64的加密数据返回解码后的二进制数据。

8.encodestring(s)函数

功能:编码一个字符串,编码成多行的base-64数据。

代码:结果:

9.encode(input, output)函数

功能:编码一个input文件,把结果的二进制数据读取到output中,

input和output是文件,当input读取到空字符串的时候返回。

10.decode(input, output)函数

功能:解码一个input文件,把结果的二进制数据读取到output中,

input和output是文件,当input读取到空字符串的时候返回。

代码:

11.urlsafe_b64decode(s)函数

功能:解码一个使用url-safe的base64的字母表的字符串,详情参看base64在URL中的用途。

12.urlsafe_b64encode(s)函数

功能:编码一个使用url-safe的base64的字母表的字符串,详情参看base64在URL中的用途。

代码:

结果:

三.python中的md5和SHA1加密算法使用

MD5

MD5是一种不可逆的加密算法,目前是最牢靠的加密算法之一,尚没有能够逆运算的程序被开发出来,它对应任何字符串都可以加密成一段唯一的固定长度的代码。

SHA1

SHA1的全称是Secure Hash Algorithm(安全哈希算法) , SHA-1比MD5多32位密文,所以更安全。

用法实例:

python中的hashlib模块是个专门提供hash算法的库,现在里面包括md5, sha1, sha224, sha256, sha384, sha512,使用非常简单、方便。用法如下:

注:with语句的作用:试图打开一个文件,如果正常把值返回给fp。

相关文档
最新文档