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=="
        
  • 相关阅读:
    inner join on, left join on, right join on讲解(转载)
    ref 与 out
    Shell基础01
    Python 基础01
    linux基础03
    Shell基础02
    linux基础02
    Linux基础01
    linux基础05
    linux基础04
  • 原文地址:https://www.cnblogs.com/mkxzy/p/7643734.html
Copyright © 2011-2022 走看看