时间:2021-05-22
本文实例讲述了python中base64加密解密方法。分享给大家供大家参考。具体分析如下:
一、base64
Base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于2的6次方等于64,所以每6个比特为一个单元,对应某个可打印字符。三个字节有24个比特,对应于4个Base64单元,即3个字节需要用4个可打印字符来表示。它可用来作为电子邮件的传输编码。在Base64中的可打印字符包括字母A-Z、a-z、数字0-9 ,这样共有62个字符,此外两个可打印符号在不同的系统中而不同。编码后的数据比原始数据略长,为原来的4/3。
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编解码和数据库存储时所要作的转换,避免了编码信息长度在此过程中的增加,并统一了数据库、表单等处对象标识符的格式。
另有一种用于正则表达式的改进Base64变种,它将“+”和“/”改成了“!”和“-”,因为“+”,“*”在正则表达式中都可能具有特殊含义。
二、python中使用
C:\Python27>pythonPython 2.7.2 (default, Jun 12 2011, 14:24:46) [MSC v.1500 64 bit (AMD64)] on win32Type "help", "copyright", "credits" or "license" for more information.>>> import base64>>> str = 'haha'>>> base64.b64encode(str)'aGFoYQ=='>>> base64.b64decode('aGFoYQ==')'haha'三、其他的方法,这个比较重要
base64.b64encode(s[, altchars])
base64.b64decode(s[, altchars])
altchars为可选的参数,用来替换+和/的一个两个长度的字符串。
base64.urlsafe_b64encode(s)
base64.urlsafe_b64decode(s)
此方法中用-代替了+,用_代替了/ ,这样可以保证编码后的字符串放在url里可以正常访问
base64.b32encode(s)
base64.b32decode(s[, casefold[, map01]])
base64.b16encode(s)
base64.b16decode(s[, casefold])
希望本文所述对大家的Python程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
用python3.x实现base64加密和解密,供大家参考,具体内容如下加密base64_encrypt.py#!/usr/bin/python3#encodi
本文实例讲述了C#实现基于Base64的加密解密类。分享给大家供大家参考。具体如下:这个C#类是一个基于Base64的加密和解密类,用户可以可以使用默认的秘钥进
1、base64加密 在页面中引入base64.js文件,调用方法为:base64加密varb=newBase64();varstr=b.encode("ad
为了安全地进行数据传输,就需要对数据进行加密与解密操作,Base64就是Java提供的加密处理器。本博客主要讲解Base64工具类的使用以及加密和解密信息操作实
本文实例讲述了C#实现Base64处理的加密解密,编码解码。分享给大家供大家参考,具体如下:usingSystem;usingSystem.Text;names