在Python下有Base64编码的库,可直接用,我自己写了个,主要是想调整编码字符的顺序。注意:如果只是想调整最后两个字符(默认为"+/"),用不着自己写,b64encode有个altchars参数,用来指定最后两个字符。先将代码放在这里,有需要的可以直接拿来用。
_keyStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='
def b64encode(s):
res = []
leftover = len(s) % 3
for i in range(0, len(s)-leftover, 3):
c2 = ord(s[i])
c1 = ord(s[i+1])
c0 = ord(s[i+2])
res.append(_keyStr[(c2 >> 2) & 0x3f])
res.append(_keyStr[((c2 & 0x3) << 4) | ((c1 >> 4) & 0x0f)])
res.append(_keyStr[((c1 & 0x0f) << 2) | ((c0 >> 6) & 0x03)])
res.append(_keyStr[c0 & 0x3f])
i += 3
if leftover == 1:
c2 = ord(s[i])
res.append(_keyStr[(c2 >> 2) & 0x3f])
res.append(_keyStr[(c2 & 0x3) << 4])
res.append(_keyStr[-1])
res.append(_keyStr[-1])
elif leftover == 2:
c2 = ord(s[i])
c1 = ord(s[i+1])
res.append(_keyStr[(c2 >> 2) & 0x3f])
res.append(_keyStr[((c2 & 0x3) << 4) | ((c1 >> 4) & 0x0f)])
res.append(_keyStr[(c1 & 0x0f) << 2])
res.append(_keyStr[-1])
return ''.join(res)
def b64decode(s):
res = []
end = len(s)
if s[-1] == _keyStr[-1]:
end -= 4
for i in range(0, end, 4):
c3, c2, c1, c0 = _keyStr.index(s[i]), _keyStr.index(s[i+1]), _keyStr.index(s[i+2]), _keyStr.index(s[i+3])
res.append(chr(((c3 << 2)) | ((c2 >> 4) & 0x03)))
res.append(chr(((c2 & 0x0f) << 4) | ((c1 >> 2) & 0x0f)))
res.append(chr(((c1 & 0x03) << 6) | (c0 & 0x03f)))
if end < len(s):
if s[-2] == _keyStr[-1]:
c3, c2 = _keyStr.index(s[end]), _keyStr.index(s[end+1])
res.append(chr(((c3 << 2)) | ((c2 >> 4) & 0x03)))
else:
c3, c2, c1 = _keyStr.index(s[end]), _keyStr.index(s[end+1]), _keyStr.index(s[end+2])
res.append(chr(((c3 << 2)) | ((c2 >> 4) & 0x03)))
res.append(chr(((c2 & 0x0f) << 4) | ((c1 >> 2) & 0x0f)))
return ''.join(res)
分享到:
相关推荐
主要介绍了Python实现base64编码的图片保存到本地功能,涉及Python针对base64编码解码与图形文件输出保存相关操作技巧,需要的朋友可以参考下
任务 Base64解码 INTERNATIONAL MEDICAL SUMMIT FORUM 任务 Base64解码 任务背景 ...Base64:Python中提供了Base64编码和解码的基础模块。 编码方法:base64.b64encode(bytes),因base64编码时是对字节进行
python中base64编码解码模块的使用笔记, 超级详细. 语法规划, 应用举例. 原理说明.
f2b - 对目录及其文件进行 base64 编码/解码的脚本文件
Python内置的base64模块可以实现base64、base32、base16、base85、urlsafe_base64的编码解码,python 3.x通常输入输出都是二进制形式,2.x可以是字符串形式。 base64模块的base64编码、解码调用了binascii模块,...
Python的base64库提供了编码和解码函数。使用base64库进行编码的步骤如下:将需要编码的数据转换为bytes类型。调用b64encode()函数,将数据进行Base64编码,返回编码后的bytes对象。使用base64库进行解码的步骤如下...
自己用java实现的Base64编码和解码,支持自定义字母表,文章地址http://blog.csdn.net/zzhouqianq/article/details/46992347
本文实例讲述了Python简单实现Base64编码和解码的方法。分享给大家供大家参考,具体如下: Base64编码是一种“防君子不防小人”的编码方式。广泛应用于MIME协议,作为电子邮件的传输编码,生成的编码可逆,后一两位...
8bit的bytecode经常会被用base64编码格式保存,Python中自带base64模块对base64提供支持,这里我们就来详解Python中使用base64模块来处理base64编码的方法,需要的朋友可以参考下
自己封闭的Base64编码,可以自己订制编码表。包括字符编码,文件编码,及文件夹编码!!
Python中进行Base64编码和解码要用base64模块,代码示例: #-*- coding: utf-8 -*- import base64 str = 'cnblogs' str64 = base64.b64encode(str) print str64 #Y25ibG9ncw== print base64.b64decode(str64) #...
安装pip install pybase64用法pybase64使用与Python base64“现代接口”(在Python 2.4中引入)相同的API,以实现轻松集成。 为了获得最快的解码速度,建议尽可能使用pybase64.b64decode和validate=True 。 import ...
将np图片(imread后的图片)转码为base64格式 ...将base64编码解析成opencv可用图片 def base64_to_image(base64_code): # base64解码 img_data = base64.b64decode(base64_code) # 转换为np数组 img_a
介绍一种base64-编码解码工具-python实现源码,方便用户在此基础上继续开发。
通过执行该工具,批量将图片转成base64的js文件,适合配合微信小程序图标使用!
base64编码解码python版.txt
泉中流版base64编码和解码(支持汉字等编码(通过utf-8编码和解码))