亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 操作系統 > 正文

Base64實現

2024-06-28 13:23:10
字體:
來源:轉載
供稿:網友
Base64實現

class Base64{public:    static string Encrypt(string sPlainText);    static string Decrypt(string sCipherText);PRivate:    static int ConvertToIndex(unsigned char ucChar);    static string Algorithm(unsigned char ucByteHigh, unsigned char ucByteMiddle, unsigned char ucByteLow, unsigned char ucAvailableCount);    static char s_caCharSet[64];};char Base64::s_caCharSet[64] ={    'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',    'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',    '0','1','2','3','4','5','6','7','8','9',    '+','/'};int Base64::ConvertToIndex(unsigned char ucChar){    if (ucChar == '+') return 62;    else if (ucChar == '/') return 63;    else if (ucChar == '=') return 0;    else if (ucChar >= 'A' && ucChar <= 'Z')    {        return ucChar - 65;    }    else if (ucChar >= 'a' && ucChar <= 'z')    {        return ucChar - 97 + 26;    }    else if (ucChar >= '0' && ucChar <= '9')    {        return ucChar - 48 + 26 + 26;    }    else    {        cerr<<"Base64 convert to Index failed"<<endl;        return 0; // abort??    }}/** * Base64 convert algorithm(from 3 bytes to 4 bytes charset index) */string Base64::Algorithm(unsigned char ucByteHigh, unsigned char ucByteMiddle, unsigned char ucByteLow, unsigned char ucAvailableCount){    string sResult;    int iTemp = 0;    unsigned char ucByte1, ucByte2, ucByte3, ucByte4;    if (ucAvailableCount == 0) return "";    iTemp = ucByteHigh;    iTemp <<= 8;    iTemp |= ucByteMiddle;    iTemp <<= 8;    iTemp |= ucByteLow;        ucByte4 = iTemp & 0x3F;    ucByte3 = (iTemp & 0xFC0) >> 6;    ucByte2 = (iTemp & 0x3F000) >> 12;    ucByte1 = (iTemp & 0xFC0000) >> 18;    if (ucAvailableCount == 1)    {        sResult += s_caCharSet[ucByte1];        sResult += s_caCharSet[ucByte2];        sResult += "==";    }    else if (ucAvailableCount == 2)    {        sResult += s_caCharSet[ucByte1];        sResult += s_caCharSet[ucByte2];        sResult += s_caCharSet[ucByte3];        sResult += "=";    }    else if (ucAvailableCount == 3)    {        sResult += s_caCharSet[ucByte1];        sResult += s_caCharSet[ucByte2];        sResult += s_caCharSet[ucByte3];        sResult += s_caCharSet[ucByte4];    }    else    {        return "";    }    return sResult;}/** * sPlainText is plaintext that non encrypted * return Base64 encrypt text */string Base64::Encrypt(string sPlainText){    string sResult;    const unsigned int uPlainTextSize = sPlainText.size();        if (sPlainText.empty())    {        cerr<<"invalid original text"<<endl;        return "";    }        if (uPlainTextSize == 1)    {        return Algorithm(sPlainText[0], 0, 0, 1);    }    else if (uPlainTextSize == 2)    {        return Algorithm(sPlainText[0], sPlainText[1], 0, 2);    }    else    {        unsigned int i;        unsigned int uCount = uPlainTextSize / 3 * 3;        for (i = 0; i < uCount; i+=3)        {            string sTmp = Algorithm(sPlainText[i], sPlainText[i+1], sPlainText[i+2], 3);            sResult += sTmp;        }        unsigned int uMore = uPlainTextSize % 3;        if ( uMore != 0)        {            if (uMore == 1)            {                sResult += Algorithm(sPlainText[i], 0, 0, 1);            }            else            {                sResult += Algorithm(sPlainText[i], sPlainText[i+1], 0, 2);            }        }                return sResult;    }}/** * input ciphertext and return related plaintext */string Base64::Decrypt(string sCipherText){    string sResult;        if (sCipherText.size() % 4 != 0)    {        cerr<<"Invalid parameter, Base64 can't convert from ciphertext to plaintext"<<endl;        return "";    }    // from high to low    unsigned char ucByte1, ucByte2, ucByte3, ucByte4;    for (unsigned int i = 0; i < sCipherText.size(); i+=4)    {        string sTmp;        int iConvertTo3Bytes = 0;        ucByte1 = ConvertToIndex(sCipherText[i]);        ucByte2 = ConvertToIndex(sCipherText[i+1]);        ucByte3 = ConvertToIndex(sCipherText[i+2]);        ucByte4 = ConvertToIndex(sCipherText[i+3]);        iConvertTo3Bytes = ucByte1;        iConvertTo3Bytes <<= 6;        iConvertTo3Bytes |= ucByte2;        iConvertTo3Bytes <<= 6;        iConvertTo3Bytes |= ucByte3;        iConvertTo3Bytes <<= 6;        iConvertTo3Bytes |= ucByte4;        sTmp = (unsigned char)(iConvertTo3Bytes >> 16);                unsigned char ucTmp = (unsigned char)((iConvertTo3Bytes & 0xFF00) >> 8);        if (ucTmp == 0)        {            sResult += sTmp;            continue;        }        else sTmp += ucTmp;        ucTmp = (unsigned char)(iConvertTo3Bytes & 0xFF);        if (ucTmp == 0)        {            sResult += sTmp;            continue;        }        else sTmp += ucTmp;        sResult += sTmp;    }    return sResult;}
View Code


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97成人精品视频在线观看| 色狠狠av一区二区三区香蕉蜜桃| 欧美最猛性xxxx| 亚洲国产成人精品久久| 美日韩在线视频| 亚洲日韩中文字幕| 成人免费视频a| 2023亚洲男人天堂| 国产一区二区三区视频| 欧美与黑人午夜性猛交久久久| 欧美一区二区三区免费观看| 97久久国产精品| 欧美午夜女人视频在线| 亚洲毛片在线观看| 狠狠躁夜夜躁人人爽超碰91| 国语自产精品视频在线看抢先版图片| 91夜夜未满十八勿入爽爽影院| 国产亚洲精品高潮| 亚洲欧美在线一区二区| 日韩av一区在线观看| 成人精品一区二区三区电影黑人| 91人人爽人人爽人人精88v| 亚洲激情在线观看视频免费| 国产成人一区二区三区小说| 中文字幕在线国产精品| 日韩视频在线免费| 欧美激情小视频| 欧美性高潮在线| 少妇精69xxtheporn| 欧美大全免费观看电视剧大泉洋| 成人黄色av网站| 亚洲精品丝袜日韩| 亚洲天堂av图片| 国产成人97精品免费看片| 成人网中文字幕| xvideos亚洲人网站| 久久久影视精品| 欧美xxxx18性欧美| 欧美另类精品xxxx孕妇| 成人免费网站在线观看| 日日噜噜噜夜夜爽亚洲精品| 欧美电影《睫毛膏》| www高清在线视频日韩欧美| 91精品久久久久久久久中文字幕| 成人国产精品久久久| 亚洲精品久久久久中文字幕欢迎你| 97欧美精品一区二区三区| 亚洲自拍小视频免费观看| 午夜精品福利电影| 日韩免费在线免费观看| 精品视频偷偷看在线观看| 亚洲精品在线视频| 欧美理论电影在线观看| 欧美性xxxx极品hd欧美风情| 国产在线久久久| 亚洲第一页中文字幕| 亚洲第一区第一页| 国产精品精品久久久| 欧美成人亚洲成人日韩成人| 中文字幕久久久| 久久亚洲欧美日韩精品专区| 国外成人免费在线播放| 国产精品成人一区二区| 国产精品亚洲欧美导航| 大胆人体色综合| 欧美成人中文字幕在线| 亚洲国产精品小视频| 91精品啪aⅴ在线观看国产| 国产成人久久精品| 奇门遁甲1982国语版免费观看高清| 亚洲已满18点击进入在线看片| 国产91精品久久久久| 亚洲最新av网址| 成人精品视频在线| 欧美激情videoshd| 国产精品r级在线| 日韩中文字幕精品视频| 日韩电影免费在线观看中文字幕| 清纯唯美亚洲激情| 欧美日韩在线视频首页| 热久久美女精品天天吊色| 亚洲人成电影网站色…| 久久久久久高潮国产精品视| 亚洲精品美女在线观看播放| 久久福利视频网| 久久久久久久久久亚洲| 日韩麻豆第一页| 亚洲欧美自拍一区| 欧美性猛交xxx| 国产精品久久久久9999| 欧美日韩国产综合视频在线观看中文| 亚洲国产中文字幕久久网| 伊人激情综合网| 日韩高清有码在线| 91美女高潮出水| 高清欧美性猛交xxxx黑人猛交| 精品动漫一区二区| 久久夜色精品亚洲噜噜国产mv| 亚洲激情免费观看| 色悠久久久久综合先锋影音下载| 中文字幕久久亚洲| 亚洲天堂第二页| 中文字幕亚洲综合| 5252色成人免费视频| 国产精品中文在线| 国产成人久久久精品一区| 欧美日韩国产91| 欧美成人高清视频| 亚洲激情国产精品| 日韩精品视频中文在线观看| 在线观看国产成人av片| 精品久久久久久国产| 中文字幕亚洲欧美一区二区三区| 26uuu日韩精品一区二区| 日韩欧美视频一区二区三区| 高清欧美一区二区三区| 精品五月天久久| 日韩在线观看电影| 久热精品视频在线观看| 亚洲男人的天堂网站| 色婷婷久久av| 一本一本久久a久久精品综合小说| 日韩电影在线观看中文字幕| 777精品视频| 久久免费视频观看| 欧美激情奇米色| 色av中文字幕一区| 欧美专区中文字幕| 日韩在线观看网址| 亚洲一区二区三区香蕉| 亚洲人成啪啪网站| 精品久久久久国产| 精品成人乱色一区二区| 久久精品中文字幕免费mv| 国产久一一精品| 欧美亚洲第一区| 国产偷亚洲偷欧美偷精品| 久久久久一本一区二区青青蜜月| 亚洲精品视频久久| 免费不卡在线观看av| 国产精品久久77777| 久久久久久九九九| 这里精品视频免费| 欧美中文在线观看国产| 国产欧美精品一区二区三区介绍| 国产精品欧美激情在线播放| 欧美最猛性xxxx| 日韩欧美在线字幕| 57pao成人永久免费视频| 91精品国产高清自在线| 日韩在线观看免费高清完整版| 欧美一区二区三区免费视| 国产精品第10页| 欧美日韩亚洲精品内裤| 这里只有精品丝袜| 日韩网站免费观看高清| 亚洲国产欧美在线成人app| 国内外成人免费激情在线视频| 亚洲欧洲激情在线| 国产精品高潮呻吟视频| 97视频在线观看成人| 九九热视频这里只有精品| 欧美小视频在线观看| 精品久久久久久久大神国产|