最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C# Base64編碼

 更新時間:2009年06月27日 21:31:05   作者:  
Base64編碼的思想是是采用64個基本的ASCII碼字符對數(shù)據(jù)進(jìn)行重新編碼。它將需要編碼的數(shù)據(jù)拆分成字節(jié)數(shù)組。
一. Base64的編碼規(guī)則 
       Base64編碼的思想是是采用64個基本的ASCII碼字符對數(shù)據(jù)進(jìn)行重新編碼。它將需要編碼的數(shù)據(jù)拆分成字節(jié)數(shù)組。以3個字節(jié)為一組。按順序排列24 位數(shù)據(jù),再把這24位數(shù)據(jù)分成4組,即每組6位。再在每組的的最高位前補(bǔ)兩個0湊足一個字節(jié)。這樣就把一個3字節(jié)為一組的數(shù)據(jù)重新編碼成了4個字節(jié)。當(dāng)所要編碼的數(shù)據(jù)的字節(jié)數(shù)不是3的整倍數(shù),也就是說在分組時最后一組不夠3個字節(jié)。這時在最后一組填充1到2個0字節(jié)。并在最后編碼完成后在結(jié)尾添加1到2個 “=”。

例:將對ABC進(jìn)行BASE64編碼:
1、首先取ABC對應(yīng)的ASCII碼值。A(65)B(66)C(67);
2、再取二進(jìn)制值A(chǔ)(01000001)B(01000010)C(01000011);
3、然后把這三個字節(jié)的二進(jìn)制碼接起來(010000010100001001000011);
4、 再以6位為單位分成4個數(shù)據(jù)塊,并在最高位填充兩個0后形成4個字節(jié)的編碼后的值,(00010000)(00010100)(00001001)(00000011),其中藍(lán)色部分為真實數(shù)據(jù);
5、再把這四個字節(jié)數(shù)據(jù)轉(zhuǎn)化成10進(jìn)制數(shù)得(16)(20)(9)(3);
6、最后根據(jù)BASE64給出的64個基本字符表,查出對應(yīng)的ASCII碼字符(Q)(U)(J)(D),這里的值實際就是數(shù)據(jù)在字符表中的索引。

注:BASE64字符表:ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/

二.解碼規(guī)則
解碼過程就是把4個字節(jié)再還原成3個字節(jié)再根據(jù)不同的數(shù)據(jù)形式把字節(jié)數(shù)組重新整理成數(shù)據(jù)。

三. C#中的實現(xiàn)
復(fù)制代碼 代碼如下:

byte[] bytes = Encoding.Default.GetBytes("helloworld");
string str = Convert.ToBase64String(bytes);
Console.WriteLine(str);
Console.ReadLine();
//base 64 decode
bytes = Convert.FromBase64String(str);
Console.WriteLine(Encoding.Default.GetString(bytes));
Console.ReadLine();

相關(guān)文章

最新評論

昭通市| 兴安县| 高雄县| 天气| 东乡族自治县| 江山市| 奉化市| 吉木萨尔县| 万载县| 禹州市| 墨玉县| 怀仁县| 平泉县| 响水县| 永泰县| 孙吴县| 南阳市| 新巴尔虎左旗| 中阳县| 苍南县| 邯郸县| 吉林市| 白沙| 晋宁县| 毕节市| 鄂州市| 诸城市| 右玉县| 漳浦县| 灵台县| 泰顺县| 杂多县| 平潭县| 沙坪坝区| 诸暨市| 雷波县| 天津市| 安化县| 兴隆县| 花莲县| 扎兰屯市|