zoukankan      html  css  js  c++  java
  • python base64编码实现

    alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
    
    def encode(byteArray):
        charArray = [0] * (((len(byteArray) + 2) // 3) * 4)
        val = 0
        groupIndex = 0
        groupCount = 0
        for index, byte in enumerate(byteArray):
            if index % 3 == 0:
                val = (0xFF & byte)
                groupCount += 1
            elif index % 3 == 1:
                val <<= 8
                val |= (0xFF & byte)
                groupCount += 1
            elif index % 3 == 2:
                val <<= 8
                val |= (0xFFFF & byte)
                for i in range(4):
                    charArray[groupIndex * 4 + (3 - i)] = alphabet[val & 0x3F]
                    val >>= 6
                groupIndex += 1
                groupCount = 0
        else:
            if groupCount > 0:
                for i in range(3 - groupCount):
                    val <<= 8
                for j in range(4):
                    if j < 3 - groupCount:
                        charArray[groupIndex * 4 + (3 - j)] = '='
                        val >>= 6
                    else:
                        charArray[groupIndex * 4 + (3 - j)] = alphabet[val & 0x3F]
                        val >>= 6        
        return "".join(charArray)
                
    
    s = 'adfdasf'
    t = encode(s.encode())
    assert t=="YWRmZGFzZg=="
        
  • 相关阅读:
    ROC曲线
    数学建模的时间表和分工
    找寻子串
    被7整除
    Java中BufferedReader和scanner的对比
    机器学习降维方法
    梯度下降法
    天池大赛
    统一认证系统(三)
    软件设计方案
  • 原文地址:https://www.cnblogs.com/mkxzy/p/7643734.html
Copyright © 2011-2022 走看看