如何拆分AUTH PLAIN组合字符串适配SMTP的AUTH LOGIN认证
拆分AUTH PLAIN的Base64字符串以适配AUTH LOGIN认证
AUTH PLAIN的Base64编码遵循固定格式:空字节(ASCII值0) + 用户名 + 空字节 + 密码,再将整体转为Base64字符串。你完全可以从现有字符串中提取出AUTH LOGIN所需的单独用户名和密码,步骤如下:
核心逻辑
解码Base64字符串后,原始内容里的两个空字节是分隔符——第一个空字节在最开头,之后是用户名,再是第二个空字节,最后是密码。按空字节拆分就能得到单独的用户名和密码。
具体操作方法
方法1:用命令行工具(Linux/macOS)
- 解码Base64字符串并将空字节替换为可见分隔符(比如逗号):
echo "dGhpc0lzTXlVc2VybmFtZVRoaXNJc015UGFzc3dvcmQ=" | base64 -d | tr '\0' ',' - 输出结果会是
,thisIsMyUsername,thisIsMyPassword,其中:- 第一个逗号和第二个逗号之间的内容是用户名
- 第二个逗号之后的内容是密码
方法2:用Python脚本
直接解码后按空字节拆分:
import base64 # 替换成你的AUTH PLAIN Base64字符串 encoded_str = "dGhpc0lzTXlVc2VybmFtZVRoaXNJc015UGFzc3dvcmQ=" decoded_bytes = base64.b64decode(encoded_str) decoded_str = decoded_bytes.decode('utf-8') # 按空字节分割 parts = decoded_str.split('\x00') username = parts[1] password = parts[2] print(f"用户名:{username}") print(f"密码:{password}")
执行后就能直接得到可用于AUTH LOGIN的单独用户名和密码。
内容的提问来源于stack exchange,提问作者Nina
相关产品推荐
相关产品推荐

