默认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(""); }
原文链接: https://www.cnblogs.com/azbane/p/10179857.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;
也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/398674
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!