999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

VB使用Base64編碼

2021-12-21 23:13:21陳新龍
電腦報(bào) 2021年47期
關(guān)鍵詞:信息

陳新龍

現(xiàn)有的字符集非常多,常用的有ASCII、UTF-8、GBK等。ASCII編碼是美國信息交換標(biāo)準(zhǔn)代碼的簡稱,它是現(xiàn)今最通用的單字節(jié)編碼系統(tǒng),只定義了128個(gè)字符。其他的編碼內(nèi)容更豐富,容量也更大。

在各種信息傳輸渠道中并不能很好地支持所有的編碼,比如在郵件傳輸中就不支持ASCII編碼中的控制字符。連最通用的ASCII編碼都不能完全支持,其他編碼我們就更無法保證信息傳輸?shù)耐暾粤恕?/p>

為了保證各種信息傳輸渠道都能正確識別信息,Base64編碼誕生了。Base64是一種用64個(gè)字符來表示任意二進(jìn)制數(shù)據(jù)的方法,將二進(jìn)制數(shù)據(jù)轉(zhuǎn)變?yōu)?4個(gè)“可打印字符”。它是一種編碼方式,而非加密方式。

Base64一般用于在HTTP協(xié)議下傳輸二進(jìn)制數(shù)據(jù),由于HTTP協(xié)議是文本協(xié)議,所以在HTTP協(xié)議下傳輸二進(jìn)制數(shù)據(jù)前需要將二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為字符數(shù)據(jù)。

然而簡單的直接轉(zhuǎn)換是不夠的,因?yàn)榫W(wǎng)絡(luò)傳輸只能傳輸可打印字符。這64個(gè)字符中包括大小寫字母、數(shù)字、+和/,還有用來補(bǔ)缺的特殊字符=(圖1)。

以在VB中將ASCII編碼進(jìn)行Base64編碼和解碼為例。Base64有64個(gè)字符,2^6=64。所以用一個(gè)6位的二進(jìn)制數(shù)來表示一個(gè)Base64編碼表就夠了。

如果有3個(gè)字節(jié)(3×8=24)共計(jì)24位的二進(jìn)制數(shù),就剛好可以用4位(4×6=24)Base64字符來表示。

ASCII編碼轉(zhuǎn)Base64編碼流程的第一步是將ASCII編碼字符串根據(jù)ASCII碼對照表轉(zhuǎn)換成二進(jìn)制數(shù),然后把二進(jìn)制數(shù)值按每6位進(jìn)行劃分,然后將6位二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù),然后在對照表中找到Base64編碼字符完成轉(zhuǎn)碼。

如果待編碼字符串長度不是3的倍數(shù)怎么辦呢?不是3的倍數(shù)會導(dǎo)致ASCII轉(zhuǎn)換的二進(jìn)制數(shù)串不能整除于6了,也就不能完整編碼為Base64。為了讓編譯出的數(shù)串可以整除,就需要用0補(bǔ)位。如果有連續(xù)六位都是0的話,就用字符“=”來表示。

例如英文單詞“Man”對應(yīng)的ASCII編碼值為77、97、110,通過進(jìn)制轉(zhuǎn)換得出24位二進(jìn)制數(shù),將24位二進(jìn)制數(shù)按6個(gè)一組分成四份。然后根據(jù)Base64的編碼值找出最終對應(yīng)的值TWFU(圖2)。

知曉了原理后,我們通過VB編程來實(shí)現(xiàn)ASCII編碼轉(zhuǎn)換為Base64編碼的過程,首先我們創(chuàng)建兩個(gè)Text文本框(Text1代表原始字符,Text2代表加密轉(zhuǎn)換后的字符)。用txt來存儲Base編碼的字符集合(A-Z,a-z,0-9,+,- 64個(gè)字符)。

在Text1文本中輸入原始字符Python,通過for循環(huán)提取出一個(gè)英文字符,將提取的字符通過ASCII編碼方法將字符轉(zhuǎn)換成數(shù)字,接下來將數(shù)字除以二取余,倒序輸出排列,高位補(bǔ)零,轉(zhuǎn)換成最終二進(jìn)制的數(shù),打印在空白區(qū)域。

由于Base64編碼按每6位一組進(jìn)行劃分,所以根據(jù)每六位二進(jìn)制數(shù)(從左往右)進(jìn)行加權(quán)求和公式為(tmp=tmp*2+val(s,i,1);例如原始第一個(gè)字符為P,ASCII碼值為80,轉(zhuǎn)換成二進(jìn)制后值為01010000,提取前六位010100,通過加權(quán)法求出二進(jìn)制轉(zhuǎn)十進(jìn)制為20,找出txt中第20位置編碼的值為U即可(txt的索引初始值為0,所以第20位其實(shí)是第21位),以此類推,Python從ASCII碼轉(zhuǎn)換成Base64碼后值為UH10Ag9u。

小結(jié):Base64編碼是現(xiàn)代密碼學(xué)的基礎(chǔ),把原本8位一組表示數(shù)據(jù),改為6位一組表示數(shù)據(jù),不足的部分補(bǔ)零,用Base64編碼之后,數(shù)據(jù)長度會變長約1/3;雖然Base64可以作為簡單加密算法,但是Base64能夠逆運(yùn)算,非常不安全(圖3)。

猜你喜歡
信息
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
信息超市
展會信息
展會信息
展會信息
展會信息
展會信息
信息
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 国产AV毛片| 亚洲免费毛片| 女人天堂av免费| 中文字幕久久亚洲一区| 在线免费不卡视频| 国产福利拍拍拍| 欧美色99| 日韩精品成人网页视频在线| 亚洲成人精品| 国产精品粉嫩| 色男人的天堂久久综合| 亚洲高清中文字幕在线看不卡| 一级爱做片免费观看久久 | 国产亚洲精品97在线观看| 国产一区免费在线观看| 久久美女精品| 精品国产一二三区| 极品尤物av美乳在线观看| 另类重口100页在线播放| 91精品国产综合久久香蕉922| swag国产精品| 国产成人在线小视频| 十八禁美女裸体网站| 人与鲁专区| 红杏AV在线无码| 视频二区国产精品职场同事| 巨熟乳波霸若妻中文观看免费| 91精品国产自产在线老师啪l| 色香蕉影院| 一区二区三区国产精品视频| 亚洲区第一页| 久久96热在精品国产高清| 国产精品自拍露脸视频| 亚洲无码A视频在线| 亚洲美女视频一区| 日韩精品成人网页视频在线| 亚卅精品无码久久毛片乌克兰| 波多野结衣一区二区三区AV| 小蝌蚪亚洲精品国产| 久久久久亚洲AV成人人电影软件| 就去吻亚洲精品国产欧美| 色综合a怡红院怡红院首页| 国产麻豆精品手机在线观看| 国产麻豆91网在线看| 亚洲人成网站在线播放2019| 国产成人一二三| 国产精品专区第一页在线观看| 久久视精品| 不卡无码网| 在线观看的黄网| 亚洲日韩第九十九页| 少妇被粗大的猛烈进出免费视频| 91福利免费视频| 黄色在线不卡| 久久久久免费看成人影片| 女人18毛片一级毛片在线 | 亚洲最大福利网站| 九色免费视频| 欧美啪啪一区| 无码日韩视频| 国产内射一区亚洲| 扒开粉嫩的小缝隙喷白浆视频| 欧美精品亚洲二区| 五月婷婷中文字幕| 亚洲an第二区国产精品| 亚洲AV电影不卡在线观看| 色婷婷视频在线| 久久久久人妻一区精品色奶水| 亚洲第一区精品日韩在线播放| 丝袜久久剧情精品国产| 永久免费AⅤ无码网站在线观看| 日韩国产综合精选| 国产精品毛片一区| 中文字幕波多野不卡一区| 91网址在线播放| 国产在线高清一级毛片| 精品偷拍一区二区| 欧美高清国产| 亚洲国产日韩在线成人蜜芽| 精品一区二区三区自慰喷水| 噜噜噜久久| 欧美激情视频一区二区三区免费|