编解码:十六进制编解码中提到,编解码本质上是以不同的数据形式来展示“信息”,可以用二进制来表示,可以用十六进制来表示。
二进制的数据,在计算机中通常是不可读、不可打印的。
那有没有一种方式,可以让二进制的数据变成“可读可打印”的?
方法有很多,最常见的是十六进制编解码和Base64编解码。
十六进制编解码之前已介绍过,本文介绍Base64编解码。
百度百科:Base64是一种基于64个可打印字符来表示二进制数据的方法。
Base64编码要求把3个8位字节(3*8=24)转化为4个6位的字节(4*6=24),之后在6位的前面补两个0,形成8位一个字节的形式。 如果剩下的字符不足3个字节,则用0填充,输出字符使用’=’,因此编码后输出的文本末尾可能会出现1或2个’=’(只可能出现0/1/2个等号,否则就是错误的)。
为啥只可能出现0/1/2个等号?动手算算就知道。
将所有的bit位用8n表示(n表示待编码数据字节数量),则当:
Base64编解码前后空间大小变化:
Demo:
参照对照表(摘自:http://base64.xpcha.com/):

Base64结果:YWJj
Code:
编译 && 执行:
需要注意:
为啥在编码时需要指明待编码数据长度?
原因是待编码数据不一定可读,是二进制数据,即,可能存在0x00,很显然不可以用strlen,那我在编码函数中如何知道其待编码数据长度呢?不知道!所以,调用编码函数时需要显示地指明待编码数据长度。
到此这篇16进制解码器解密(十六进制或者编码器解密)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/16266.html