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

编解码的,实际上也是调用的前一组函数。

二.加解密函数