`
marlonyao
  • 浏览: 253221 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Python下Base64编码

阅读更多
在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编程中,有时我们需要...总之,Python通过`base64`模块提供了对Base64编码的支持,我们可以方便地将Base64编码的图片解码并保存到本地。这在处理网络传输的图片数据时非常有用,确保了数据的安全性和兼容性。

    Python-f2b对目录及其文件进行base64编码解码的脚本文件

    在给定的场景中,我们关注的是一个名为"Python-f2b"的脚本,它专门用于对目录及其内部文件进行Base64编码和解码。Base64是一种用于将二进制数据转换为ASCII字符的编码方法,常用于在网络上传输非ASCII字符,如图片或...

    base64-编码解码工具-python实现源码

    Python作为一种功能强大的编程语言,内置了对Base64编码和解码的支持,使得开发者可以轻松地处理这类任务。在本主题中,我们将深入探讨如何使用Python来实现Base64的编码和解码功能,并了解相关的源码实现。 首先,...

    python base64编码解码详细笔记

    python中base64编码解码模块的使用笔记, 超级详细. 语法规划, 应用举例. 原理说明.

    python将图片转base64,实现前端显示

    1. 图片转换为Base64编码:在Python中,可以通过内置的base64库轻松实现这个过程。首先,需要导入base64模块,然后使用open函数以二进制读取模式打开目标图片文件,之后使用base64.b64encode方法对图片内容进行编码...

    Python程序设计:base64解码.pptx

    这种编码方式在HTTP环境下特别有用,因为HTTP协议本身并不支持直接传输二进制数据,而Base64编码后的数据可以作为文本字符串安全地在网络中传输。 在Python中,Base64的编码和解码功能是由内置的`base64`模块提供的...

    python的base64和pillow库实现的编码解码程序源代码

    Python的base64库提供了编码和解码函数。使用base64库进行编码的步骤如下:将需要编码的数据转换为bytes类型。调用b64encode()函数,将数据进行Base64编码,返回编码后的bytes对象。使用base64库进行解码的步骤如下...

    文件转换为Base64编码

    例如,在Python中,可以使用`base64`模块的`b64encode()`和`b64decode()`函数来实现文件的Base64编码和解码。其他语言如Java、JavaScript、C#等也有相应的API支持。 在实际应用中,Base64编码常用于以下场景: - *...

    Python常用base64 md5 aes des crc32加密解密方法汇总

    Python内置的base64模块可以实现base64、base32、base16、base85、urlsafe_base64的编码解码,python 3.x通常输入输出都是二进制形式,2.x可以是字符串形式。 base64模块的base64编码、解码调用了binascii模块,...

    将图片进行Base64编码后传输

    "将图片进行Base64编码后传输"是一种高效且便捷的方式,它允许我们直接将图片数据嵌入到文本格式中,方便在网络中传递。这种技术广泛应用于JSON API、HTML页面以及任何不支持二进制数据流的系统。 Base64是一种编码...

    自己实现的Base64编码和解码,支持自定义字母表

    自己用java实现的Base64编码和解码,支持自定义字母表,文章地址http://blog.csdn.net/zzhouqianq/article/details/46992347

    自定义Base64编码

    Base64编码是一种广泛用于在网络上传输二进制数据的编码方式,它将任意的8位字节序列转换成特定的可打印字符序列。在标准的Base64算法中,有64个不同的字符用于表示这些二进制数据,包括大小写字母、数字以及"+"和"/...

    泉中流版base64编码和解码(支持汉字等编码(utf-8))

    在Python中,基础的Base64编码可以使用`base64.b64encode()`函数,而解码则使用`base64.b64decode()`函数。这两个函数都接受字节串作为输入,输出也是字节串。如果需要处理包含非ASCII字符(如汉字)的字符串,需要...

    linux下的base64编码转换工具及源码

    例如,在Python中,可以使用`base64`模块进行编码和解码: ```python import base64 data = b"你好,世界" encoded_data = base64.b64encode(data) decoded_data = base64.b64decode(encoded_data) ``` 总的来说...

    Python 实现opencv所使用的图片格式与 base64 转换

    将np图片(imread后的图片)转码为base64格式 ...将base64编码解析成opencv可用图片 def base64_to_image(base64_code): # base64解码 img_data = base64.b64decode(base64_code) # 转换为np数组 img_a

    批量处理+Python+获得LabelMe标注的json文件中`imageData`字段信息【Base64编码】

    【内容概要】: 该项目通过一个用户友好的图形界面,实现了自动修正指定文件夹内JSON文件的`imageData`字段,将其由null转换为正确的Base64编码格式。程序首先选择包含图像文件及其对应JSON元数据的目录,随后遍历...

    BASE64编码

    Base64编码在多种场景下有其应用,如电子邮件系统的MIME标准、XML认证的X.509证书、HTTPS中的TLS/SSL协议以及图片数据的嵌入等。在这些场景中,Base64编码能够保证数据的完整性和一致性,使得数据能够在不同系统间...

    Python简单实现Base64编码和解码的方法

    本文实例讲述了Python简单实现Base64编码和解码的方法。分享给大家供大家参考,具体如下: Base64编码是一种“防君子不防小人”的编码方式。广泛应用于MIME协议,作为电子邮件的传输编码,生成的编码可逆,后一两位...

    详解Python中使用base64模块来处理base64编码的方法

    ### 详解Python中使用`base64`模块处理Base64编码的方法 ...通过以上介绍,我们可以看到Python中的`base64`模块提供了丰富的功能来处理Base64编码,使得开发者能够轻松应对各种场景下的Base64编码需求。

Global site tag (gtag.js) - Google Analytics