Base64编码是加密算法吗?

作者&投稿:豆卢亭 (若有异议请与网页底部的电邮联系)
~ 大家好,我是阿萨。昨天和开发同学一起开会的时候。开发同学说到了用Base64编码,我立即说 不能使用Base64加密。然后开发来了一句Base64不是加密算法。当时懵了。默默记下这个知识点,回来学习下。

先给大家讲解下我为什么会有不能使用Base64加密的意识。很多年前,我遇到的第一个安全问题,就是敏感数据用Base64加密了。 事情起因是,我们接到一个bug,说有个敏感字段使用Base64在前端加密了,然后传给后端了。

基于之前的小故事,对于使用了Base64编码的地方就觉得不安全。这也是为什么会对开发说不能用Base64加密了,

今天我们就来学习下Base64编码。

一,Base64编码的由来。

传说,最开始互联网电子邮件都是英文的,后来互联网传到中国后,互联网电子邮件汉字就不认识了。所以就有了Base64编码,把中文变成可识别的英文。然后Base64编码被广泛用到各行各业。

以上只是传说。真实的由来,就不得而知了。

下面我们从计算机的底层传输过程中。它分为可见字符和不可见字符。可见字符比如我们熟知的ASCII码。

还有一些不可见的控制字符(0~31以及127),比如回车,换行等以及一些二进制数据都是不可见字符。

这些不可见字符在一些硬件,比如交换机,路由器以及网关等识别或者解析错误,导致错误发生,所以就有了Base64编码的市场。因此Base64产生了。

二,Base64 编码的原理

Base64编码就是要把不可见的字符转换成常见的64个字符的过程。

这64个字符是哪些呢?

那么它工作原理是啥呢?

1) 首先把整段传输内容全部划分成三个字节一组。这里就有了24bit了.

2) 然后把24bit 分成四组。每一组就有6bit

3)在6bit的最前面添加2个0,这样就有了8bit

4)把这8bit 转换成一个字节。查找上表中对应字符。所有其他分组内容按照这样的处理逻辑处理下。就得到了Base64的编码后字符。

注意,如果不够三字节,用0填到三字节,同时补充了多少个字节的0,末尾就添加就几个=。

分别图示下以上过程:

三个A

2个A,补充一个0

1个A,补充2个0

三,总结

Base64编码不是用来加密的,也不是加密算法。它只是用来编码的。切记不可用于加密。如果敏感信息用Base64编码加密了,赶紧提bug。

经过今天的学习,希望大家有所收获。

如果你喜欢今天的内容,欢迎点赞,关注。


Base64编解码
Base64编码是一种常见的用于网络传输8位字节数据的编码方法,它通过64个可打印字符来表示二进制数据。这64个字符包括小写和大写字母、数字以及特殊符号"+"和"\/"。编码过程是将原始二进制数据转换为这64个字符的序列,而解码则是反向操作,将字符序列还原回原始二进制。Base64编码遵循特定规则:首先,每三...

base64MIME
在MIME格式的电子邮件传输中,base64编码是一种关键工具,用于将二进制字节序列转化为ASCII字符文本。这个过程在邮件的传输编码中被应用,它使用64个字符,包括大写和小写字母26个,10个数字,加号"+",斜杠"\/",以及等号"="。完整的定义可参考RFC1421和RFC2045标准。编码后的数据长度会比原始数据略长,...

Base64和urlencode
Base64编码无法取代URL编码。Base64编码中的加号“+”、斜杠“\/”和等号“=”都需要进行URL编码,因此无法直接取代URL编码。Base64编码的作用不仅是转换字符,还可以实现ASCII码与其他字符编码之间的转换。例如,可以将UTF-8编码转换为Base64编码,再转换为ASCII码;反之,也可以将ASCII码转换为Base64编码...

如何判断一个字符串是经过了base64编码的
1.标准base64只有64个字符(英文大小写、数字和+、\/)以及用作后缀等号;2.base64是把3个字节变成4个可打印字符,所以base64编码后的字符串一定能被4整除(不算用作后缀的等号);3.等号一定用作后缀,且数目一定是0个、1个或2个。这是因为如果原文长度不能被3整除,base64要在后面添加\\0凑齐3...

Base64编码是加密算法吗?
Base64编码就是要把不可见的字符转换成常见的64个字符的过程。这64个字符是哪些呢?那么它工作原理是啥呢?1) 首先把整段传输内容全部划分成三个字节一组。这里就有了24bit了.2) 然后把24bit 分成四组。每一组就有6bit 3)在6bit的最前面添加2个0,这样就有了8bit 4)把这8bit 转换成一个...

你真的懂 Base64 吗?短链服务常用的 Base62 呢?
Base64基础Base64是一种将二进制数据转换为64个字符表示的编码方法,包括字母(A-Z, a-z, 0-9),加号(+)和斜线(\/)。它将数据如图片或字符串转换为易于传输的形式。Base64工作原理以字符串"aa"为例,首先将其转换为二进制,然后每6位一组并进行补位,最后根据Base64索引表转换字符,结果为YWE=...

base64编码是什么?
Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。可查看RFC2045~RFC2049,上面有MIME的详细规范。Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。采用Base64编码具有不可读性,需要解码后才能阅读。Base64...

base64_encode的实例说明
Base64编码会增加数据的大小约三分之一,因此需要在处理大量数据时考虑存储和传输成本。此外,Base64编码是可逆的,即可以通过相应的解码过程还原成原始的二进制数据。这是因为在编码过程中保留了足够的关于原始数据的信息。在进行解码时,只需要将这些信息正确地解析出来即可还原原始的二进制数据。

Base64编码详解与URL安全的Base64编码
在遇到不能被3整除的字节时,如单字节'a'或双字节'ab',需要特殊处理:单字节'a'编码后可能加上补0和等号,双字节'ab'亦然。比如'ab'编码后会变为'YWI='。然而,标准Base64编码包含一些URL不安全字符,如'+'和'='。为避免URL注入漏洞,产生了URL安全的Base64编码,它会替换这些字符,如'+'...

一文带你读懂base64编码
Base64并非加密算法,而是将非ASCII字符转换为可传输的ASCII字符,以适应网络传输规则。对于中文字符,使用不同编码(如UTF-8或GB2312)会有不同的Base64编码结果,解码时需要确保字符集的一致性。尽管Base64编码看似简单,但它在实际应用中需要正确使用,避免误用于加密关键信息,因为它的可逆性可能会带来...

商州区19235412330: base64加密的结果还是字符串吗 -
犹阎心得: base64加密的结果还是字符串吗 首先,Base64算不上是一种加密算法. Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,它的目的是用ASCII中定义的可见字符去表示任意的二进制数据.之所以要这样做,是因为计算机中很多...

商州区19235412330: 请问现在开发项目一般用到哪些加密算法? -
犹阎心得: 现阶段开发项目主要用到 BASE64 、 MD5 、 SHA 、 HMAC 几种加密算法. BASE64 编码算法不算是真正的加密算法. MD5 、 SHA 、 HMAC 这三种加密算法,可谓是非可逆加密,就是不可解密的加密方法,我们称之为单向加密算法.我们通常只把他们作为加密的基础.单纯的以上三种的加密并不可靠. BASE64的加密解密是双向的,可以求反解. MD5、SHA以及HMAC是单向加密,任何数据加密后只会产生唯一的一个加密串,通常用来校验数据在传输过程中是否被修改.其中HMAC算法有一个密钥,增强了数据传输过程中的安全性,强化了算法外的不可控因素. 单向加密的用途主要是为了校验数据在传输过程中是否被修改.

商州区19235412330: 如何判断一个字符串是否经过base64加密过 -
犹阎心得: 首先,Base64算不上是一种加密算法. Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,它的目的是用ASCII中定义的可见字符去表示任意的二进制数据.之所以要这样做,是因为计算机中很多数据是只能通过可见字符去传输的

商州区19235412330: 哪种加密算法算法会导致信息不可还原 -
犹阎心得: BASE64 是一种数据编码方式(更不是字符集转码),不是加密算法; 3、MD5是单向散列算法,不是一般意义上的加密算法,不能还原明文.

商州区19235412330: 关于base64加密算法的详细内容 -
犹阎心得: base64严格的来说不能算一种加密方法,游戏也没有用这个来加密的.正确的讲这是一种编码解码的算法,算法是公开的任何人都可以根据编码原理做出解码的程序来.我这有VB6版的加密解密模块

商州区19235412330: base64 加密后可以还原回去,这种加密不就没有安全性可言了? -
犹阎心得: BASE64不是用来加密的.你看看经过BASE64编码后的字符串,全部都是由标准键盘上面的常规字符组成,这样编码后的字符串在网关之间传递不会产生UNICODE字符串不能识别或者丢失的现象.你再仔细研究下EMAIL就会发现其实EMAIL就是用base64编码过后再发送的.然后接收的时候再还原.还有一种情况下用BASE64编码也很好,比如一个图片文件,或者其他任何二进制文件.我可以把它编码成字符串.这样用XML或者数据库就能直接以文本的方式来存储这些文件了.

商州区19235412330: Java里,,什么是二进制? 什么是base64?他们有什么区别? -
犹阎心得: 二进制是计算机最基础的一种数据表示,是计算机的一中数制. 而base64是一中加密的方法,目的是为了数据不通过明文暴露在肉眼中,计算机中二进制8位为一个字节,而base64加密算法中6bit为一组,然后在高位补0,补齐8位后在转10进制,转10进制后有一张base64的对照表,在转换成英文字母或字符,就起到了加密的作用. 对了补充一下,8位(bit)为1字节,不足8位计算机会认为数据无效的,

商州区19235412330: java项目如何加密? -
犹阎心得: Java基本的单向加密算法: 1.BASE64 严格地说,属于编码格式,而非加密算法2.MD5(Message Digest algorithm 5,信息摘要算法)3.SHA(Secure Hash Algorithm,安全散列算法)4.HMAC(Hash Message Authentication Code,散列消息鉴别码...

商州区19235412330: 房产证可加密 加密方式有哪些 -
犹阎心得: 房产证曾试点指纹加密房屋已经成为了人们最大宗的资产,与房地产相关的诈骗案件也屡有发生.据了解,2008年,北京市曾在延庆、通州等地进行过指纹、肖像房产证加密的试点,市民可自愿选择是否加密,需要收费120元.在房产交易...

商州区19235412330: javascript是不是自带了base64加密或者解密函数? -
犹阎心得: 是的,解密函数为:window.btoa("test");//"dGVzdA==" window.atob("dGVzdA==");//"test" 为什么要使用Base64加密呢?Base64编码的作用:由于某些系统中只能使用ASCII字符.Base64就是用来将非ASCII字符的数据转换成ASCII字...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网