网易首页 > 网易号 > 正文 申请入驻

【壹零学院】VB-Base64编码

0
分享至

现有的字符集非常多,常用的有ASCII、UTF-8、GBK等。ASCII编码是美国信息交换标准代码的简称,它是现今最通用的单字节编码系统,只定义了128个字符。其他的编码内容更丰富,容量也更大。

在各种信息传输渠道中并不能很好的支持所有的编码,比如在邮件传输中就不支持ASCII编码中的控制字符。连最通用的ASCII编码都不能完全支持,其他编码我们就更无法保证信息传输的完整性了。

为了保证各种信息传输渠道都能正确识别信息,Base64编码诞生了。Base64是一种用64个字符来表示任意二进制数据的方法,将二进制数据转变为64个“可打印字符”。它是一种编码方式,而非加密方式。

Base64一般用于在HTTP协议下传输二进制数据,由于HTTP协议是文本协议,所以在HTTP协议下传输二进制数据前需要将二进制数据转换为字符数据。

然而简单的直接转换是不够的,因为网络传输只能传输可打印字符。这64个字符中包括大小写字母、数字、+和/,还有用来补缺的特殊字符=(图1)。

以在VB中将ASCII编码进行Base64编码和解码为例。Base64有64个字符,2^6=64。所以用一个6位的二进制数来表示一个Base64编码表就够了。

如果有3个字节(3×8=24)共计24位的二进制数,就刚好可以用4位(4×6=24)Base64字符来表示。

ASCII编码转Base64编码流程的第一步是将ASCII编码字符串根据ASCII码对照表转换成二进制数,然后把二进制数值按每6位进行划分,然后6位二进制数转化为十进制数,然后根据对照表中找到Base64编码字符完成转码。

如果待编码字符串长度不是3的倍数怎么办呢?不是3的倍数会导致ASCII转化的二进制数串不能整除于6了,也就不能完整编码为Base64。为了让编译出的数串可以整除,就需要用0补位。如果有连续六位都是0的话,就用字符“=”来表示。

例如英文单词“Man”对应的ASCII编码值为77,97,110,通过进制转化得出24位二进制数,将24位二进制数按6个一组分成四份。然后根据Base64的编码值找出最终对应的值TWFU(图2)。

知晓了原理后,我们通过VB编程来实现ASCII编码转换Base64编码过程,首先我们创建两个Text文本框(Text1代表原始字符,Text2代表加密转换后的字符)。用txt来存储Base编码的字符集合(A-Z,a-z,0-9,+,- 64个字符)。

在Text1文本中输入原始字符Python,通过for循环提取出一个英文字符,将提取的字符通过ASCII编码方法将字符转化成数字,接下来将数字除二取余,倒叙输出排列,高位补零,转化成最终二进制的数,打印在空白区域。

由于Base64编码按每6位一组进行划分,所以根据每六位二进制数(从左往右)进行加权求和公式为(tmp=tmp*2+val(s,i,1);例如原始第一个字符为P,ASCII码值为80,转化成二进制后值为01010000,提取前六位010100,通过加权法求出二进制转十进制为20,找出txt中第20位置编码的值为U即可(txt的索引初始值为0,所以第20位其实是第21位),以此类推,Python从ASCII码转化成Base64码后值为UH10Ag9u。

小结,Base64编码是现代密码学的基础,把原本8位一组表示数据,改为6位一组表示数据,不足的部分补零,用Base64编码之后,数据长度会变长约1/3;虽然Base64可以作为简单加密算法,但是Base64能够逆运算,非常不安全。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
局势一夜升级!解放军还未出手,“敌人”全部现身?4国确认出兵

局势一夜升级!解放军还未出手,“敌人”全部现身?4国确认出兵

视野聚椒
2024-12-03 18:01:39
张玉凤晚年写回忆录,揭露国家最高机密:毛主席并非宣传的那样

张玉凤晚年写回忆录,揭露国家最高机密:毛主席并非宣传的那样

谢小龙聊历史
2024-10-24 23:35:08
“现在的女装是做外穿内裤了吗?” 评论区一堆人破防,网购太坑!

“现在的女装是做外穿内裤了吗?” 评论区一堆人破防,网购太坑!

有趣的火烈鸟
2024-11-28 17:20:20
中国有两大致命缺口,一个是台湾,另一个曾要300万大军才能堵住

中国有两大致命缺口,一个是台湾,另一个曾要300万大军才能堵住

历史求知所
2024-11-29 12:50:03
随着泰山0-4惨败,申花1-2被逆转,亚冠最新排名出炉:垫底队易主

随着泰山0-4惨败,申花1-2被逆转,亚冠最新排名出炉:垫底队易主

侃球熊弟
2024-12-04 22:02:44
普京:西方破坏俄罗斯经济的计划失败了

普京:西方破坏俄罗斯经济的计划失败了

财联社
2024-12-04 23:52:06
中东速递:美军下场,叙利亚政府军蜂拥投降

中东速递:美军下场,叙利亚政府军蜂拥投降

西楼饮月
2024-12-03 22:30:29
科大讯飞:与华为保持良好合作 为华为mate70中的基于大模型的方言自由说等功能提供相关技术支持

科大讯飞:与华为保持良好合作 为华为mate70中的基于大模型的方言自由说等功能提供相关技术支持

财联社
2024-12-04 22:42:07
马斯克39岁前妻的新婚生活被曝光:与100多只动物一起住大庄园里

马斯克39岁前妻的新婚生活被曝光:与100多只动物一起住大庄园里

农村教育光哥
2024-12-04 09:44:41
魔术师:我真为湖人感到羞愧 三节结束落后热火33分

魔术师:我真为湖人感到羞愧 三节结束落后热火33分

直播吧
2024-12-05 10:33:40
讲真,千万不要乱涂碘伏!千万不要!

讲真,千万不要乱涂碘伏!千万不要!

果壳
2024-12-04 20:29:04
他是矮矬穷却拥有让所有男人嫉妒的大家伙,因太受富婆喜爱被FBI调查

他是矮矬穷却拥有让所有男人嫉妒的大家伙,因太受富婆喜爱被FBI调查

魏惊蛰
2023-06-29 21:51:37
又一家云计算运营商因价格上涨900% 而放弃VMware

又一家云计算运营商因价格上涨900% 而放弃VMware

cnBeta.COM
2024-12-04 14:18:02
德媒:德国乃至西方对于中国的稀土工业严重的依赖是不可接受的

德媒:德国乃至西方对于中国的稀土工业严重的依赖是不可接受的

橘色数码
2024-12-03 08:50:36
湖人41分惨败!詹姆斯空砍29+5+8,浓眉14中3仅8分,不想打了

湖人41分惨败!詹姆斯空砍29+5+8,浓眉14中3仅8分,不想打了

老王大话体育
2024-12-05 11:30:08
重庆一工业园区发生火灾?官方辟谣

重庆一工业园区发生火灾?官方辟谣

极目新闻
2024-12-05 11:06:20
5-1!恩佐戒色大暴走,5场造8球,切尔西客场雪耻,4连胜宣战热刺

5-1!恩佐戒色大暴走,5场造8球,切尔西客场雪耻,4连胜宣战热刺

钉钉陌上花开
2024-12-05 06:18:26
利物浦3-3,曼城3-0,切尔西5-1,英超最新积分榜出炉:争冠大乱

利物浦3-3,曼城3-0,切尔西5-1,英超最新积分榜出炉:争冠大乱

侃球熊弟
2024-12-05 05:28:45
超大的巨型国家国土的缺陷:俄罗斯领土太严寒了,出海条件太差了

超大的巨型国家国土的缺陷:俄罗斯领土太严寒了,出海条件太差了

蜉蝣说
2024-12-03 16:27:28
鹈鹕解约锡安1亿大合同?疯了,太扯淡了……

鹈鹕解约锡安1亿大合同?疯了,太扯淡了……

篮球实战宝典
2024-12-04 23:11:40
2024-12-05 11:44:49
壹零社
壹零社
最新鲜的互联网产业资讯
2662文章数 1522关注度
往期回顾 全部

科技要闻

美国加大制裁之时 中国半导体出口破万亿

头条要闻

牛弹琴:尹锡悦政治生命已基本结束 可能比朴槿惠更惨

头条要闻

牛弹琴:尹锡悦政治生命已基本结束 可能比朴槿惠更惨

体育要闻

哈登,我不做大哥好多年

娱乐要闻

琼瑶尸检结果:一氧化碳中毒窒息而亡

财经要闻

代表青春的人人网,怎么“又”凉了?

汽车要闻

表现够全能 柴油版二代哈弗H9或许更适合家用

态度原创

家居
本地
艺术
公开课
军事航空

家居要闻

舒适优雅 打造从容舒适的居家氛围

本地新闻

云游中国|来伦布夏果感受充满Passion的人生

艺术要闻

故宫珍藏的墨迹《十七帖》,比拓本更精良,这才是地道的魏晋写法

公开课

李玫瑾:为什么性格比能力更重要?

军事要闻

德国总理:向乌克兰派兵“绝无可能”

无障碍浏览 进入关怀版