C++实现 safaBase64编码跟nonSafeBase64编码的转换

默认Base64编码的字符串,用于网络传输是不安全的,因为Base64编码使用的标准字典含有“+”,“/”。

规则如下:

//nonSafeBase64 到 safeBase64
'+'   ------>>  '-'

'/'  ------>>    '_'

//safeBase64 到 nonSafeBase64
'-'   ------>>  '+'

 '_'  ------>>   '/'

 字符串长度%4的余数,补'='

 

//safeBase64 非safeBase64 想换转换
std::string safeAndNonsafeBase64Change(std::string inputStr, int mode)
{
    if( mode == 1) //safe -->> nonsafe
    {
        for(int i = 0; i < inputStr.size(); i++)
        {
            if(inputStr[i] == '-')
            {
                inputStr[i] = '+';
                continue;
            }
            if(inputStr[i] == '_')
            {
                inputStr[i] = '/';
                continue;
            }
        }
        int remainder = inputStr.length()%4;
        while(remainder--)
        {
            inputStr.append("=");
        }
        return inputStr;
    }
    else if (mode == 2) //nonsafe -->> safe
    {
        for(int i = 0; i < inputStr.size(); i++)
        {
            if(inputStr[i] == '+')
            {
                inputStr[i] = '-';
                continue;
            }
            if(inputStr[i] == '/')
            {
                inputStr[i] = '_';
                continue;
            }
            if(inputStr[i] == '=')
            {
                //inputStr[i] = '';
                inputStr.pop_back();
                continue;
            }
        }
        return inputStr;    
    }
    else
        return std::string("");

}

 

附: C++二进制字符串转Base64字符串 Base64字符串转二进制字符串

原文链接: https://www.cnblogs.com/azbane/p/10179857.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    C++实现 safaBase64编码跟nonSafeBase64编码的转换

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/398674

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年4月12日 上午9:46
下一篇 2023年4月12日 上午9:46

相关推荐