📜  在Python中编码和解码Base64字符串

📅  最后修改于: 2020-07-24 04:45:14             🧑  作者: Mango

Base64编码用于将具有二进制或文本数据的字节转换为ASCII字符。编码可防止在通过纯文本系统传输或处理数据时损坏数据。在本文中,我们将讨论Base64编码和解码及其在二进制和文本数据编码和解码中的用途。

Base64编码:
这是一种将字节转换为ASCII字符的类型。可用的Base64字符列表如下:

  • 26个大写字母
  • 26个小写字母
  • 10个数字
  • +和/用于换行

每个Base64字符代表6位数据。同样重要的是要注意,出于显而易见的原因,它并不用于加密。
要将字符串转换为Base64字符,应遵循以下步骤:

  • 获取字符串中每个字符的ASCII值。
  • 计算ASCII值的8位二进制等效项
  • 通过重新组合数字将8位字符块转换为6位块
  • 将6位二进制组转换为其各自的十进制值。
  • 使用Base64编码表将每个十进制值的相应Base64值对齐。

下图为我们提供了Base64编码表:

使用python编码字符串:
在Python中,base64模块用于编码和解码数据。首先,将字符串转换为类似字节的对象,然后使用base64模块进行编码。下面的示例显示了编码字符串不是base64字符的实现。

例:

import base64 
  
sample_string = "GeeksForGeeks is the best"
sample_string_bytes = sample_string.encode("ascii") 
  
base64_bytes = base64.b64encode(sample_string_bytes) 
base64_string = base64_bytes.decode("ascii") 
  
print(f"编码字符串: {base64_string}") 

输出:

编码字符串: R2Vla3NGb3JHZWVrcyBpcyB0aGUgYmVzdA==

使用Python解码字符串:
解码Base64字符串与编码完全相反。首先,我们将Base64字符串转换为未编码的数据字节,然后再将类似字节的对象转换为字符串。下面的示例描述了以上示例编码字符串输出的解码。

例:

import base64 
  
base64_string =" R2Vla3NGb3JHZWVrcyBpcyB0aGUgYmVzdA =="
base64_bytes = base64_string.encode("ascii") 
  
sample_string_bytes = base64.b64decode(base64_bytes) 
sample_string = sample_string_bytes.decode("ascii") 
  
print(f"解码字符串: {sample_string}") 

输出:

解码字符串: GeeksForGeeks is the best