亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        VB使用Base64編碼

        2021-12-21 23:13:21陳新龍
        電腦報 2021年47期
        關(guān)鍵詞:個字符對照表二進(jìn)制

        陳新龍

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

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

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

        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個字符中包括大小寫字母、數(shù)字、+和/,還有用來補(bǔ)缺的特殊字符=(圖1)。

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

        如果有3個字節(jié)(3×8=24)共計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個一組分成四份。然后根據(jù)Base64的編碼值找出最終對應(yīng)的值TWFU(圖2)。

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

        在Text1文本中輸入原始字符Python,通過for循環(huán)提取出一個英文字符,將提取的字符通過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);例如原始第一個字符為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)。

        猜你喜歡
        個字符對照表二進(jìn)制
        用二進(jìn)制解一道高中數(shù)學(xué)聯(lián)賽數(shù)論題
        有趣的進(jìn)度
        2019年成考院校招生簡章審核對照表
        二進(jìn)制在競賽題中的應(yīng)用
        ISO?9001:2015與ISO?9001:2008之間的對照表
        中國纖檢(2016年3期)2016-04-07 18:48:48
        不讓長文件名成為“絆腳石”
        電腦迷(2014年8期)2014-04-29 07:37:40
        本刊常用符號對照表
        本刊常用符號對照表
        工資報表計算機(jī)軟件論述
        卷宗(2011年9期)2011-05-14 17:51:19
        一個生成組合的新算法
        国产第一页屁屁影院| 极品美女一区二区三区免费| 五月综合激情婷婷六月| 国产午夜亚洲精品午夜鲁丝片| 久久久久国产一级毛片高清版A| 国内精品极品久久免费看| 国产精品一区二区av不卡| 免费看美女被靠的网站| 久久精品波多野结衣中文字幕| 在线观看中文字幕一区二区三区 | 国产成人无码a在线观看不卡| 国产一女三男3p免费视频| 国产在线欧美日韩一区二区| 国产影片免费一级内射| 国产69精品久久久久9999apgf| 性欧美暴力猛交69hd| 精品人妻少妇一区二区中文字幕 | 欧美国产综合欧美视频| 在线播放国产一区二区三区| 亚洲精品综合在线影院| 成人免费av色资源日日| 蜜臀色欲av在线播放国产日韩| 欧美色欧美亚洲另类二区不卡| 成人偷拍自拍在线视频| 中文无码av一区二区三区| 中国老妇女毛茸茸bbwbabes| 亚洲三级在线播放| 久久99精品综合国产女同| 人妻 日韩 欧美 综合 制服| 国产精品白浆视频免费观看| 少妇极品熟妇人妻高清| 国产白浆一区二区三区性色| 日本一卡2卡3卡四卡精品网站| 一本一本久久a久久精品综合| 精品麻豆国产色欲色欲色欲www| 成人性生交大片免费看r| 国产一区二区三区最新视频| 中文字幕久久精品波多野结百度| 狼人精品剧情av在线观看| 国产福利视频一区二区| 亚洲红怡院|