base64解码详解

本文详细介绍了Base64解码的过程,通过编码的逆操作来还原原始数据。解码时,每次处理4个字节,分别对应源码的3个字节。通过位运算提取每个字节的后6位,组合成源码的二进制表示,从而得到解码后的字符串。解码过程中,对于编码末尾可能出现的'='字符,由于其仅用于填充,不包含有效信息,所以在解码前会被剔除。
摘要由CSDN通过智能技术生成

上一节详细的解释了编码的过程,本节将介绍一下解码的过程。可以说解码就是编码的你过程,具体的代码如下:

int FindPos(const char needChar)
{//base64的ascii表和一般的ascii表不同
	const char *chKey = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";//base64的ascii表
	for (int i=0;i<64;++i)
	{
		if (needChar == chKey[i])
		{
			break;
		}
	}
	return i;
}
std::string Basic_64::GetPeriorStr(std::string& readyChangeStr)
{//解码的过程只是编码的逆过程
	if (readyChangeStr.empty())
	{
		return "";
	}
	/**************************
	如果遇到==,就不用处理该字节,处理其余的字节即可
	**************************/
	std::string sNeedString=readyChangeStr;//保留原来的字符串(不能改变用户传递的参数)
	while(sNeedString.find("=")!=-1)
	{
		sNeedString.replace(sNeedString.length()-1,sNeedString.length()-1,"");
	}
	int stringLen=sNeedString.length();
	if (stringLen <= 0)
	{
		return "";
	}
	char tempchar=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值