• 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字符串转二进制字符串

  • 相关阅读:
    form 编译命令
    Form文件夹开发步骤
    使用View为Data Source的Form开发要点
    spring2.0包说明【转】
    Zero to One读后感
    Fourth glance in Go
    Third glance in Go
    Second glance in Go
    First glance in Go
    MongoDB 安装
  • 原文地址:https://www.cnblogs.com/azbane/p/10179857.html
Copyright © 2020-2023  润新知