base64,网上工具编码结果不一致问题探讨

今天我们就来聊一聊base64

相信同学们肯定接触的不少关于base64的编码和解码,平时 见到base64之后的内容 大概就能看出来这是base64出来的结果.

或者平时在对接 第三方系统时,对方或者我方在对数据进行加密等等都会用到

今天我就来说一说我最近几天遇到的问题: base64 在不同的在线网站上编码的内容不一致

比如:

{"test":"12345","name":"我是大帅"}

上面的一段很简单的json字符串 我们随便找一个在线网站,直接上结果吧
结果1

此时编码的结果为: eyJ0ZXN0IjoiMTIzNDUiLCJuYW1lIjoi5oiR5piv5aSn5biFIn0=

在找一个编码网站:

此时得到的结果为:JTdCJTIydGVzdCUyMiUzQSUyMjEyMzQ1JTIyJTJDJTIybmFtZSUyMiUzQSUyMiV1NjIxMSV1NjYyRiV1NTkyNyV1NUUwNSUyMiU3RA==

当时我很诧异, 这是什么情况 为什么base64的结果会不一会样 但是 貌似第一个是对的

经过几番折腾 我发现了其中的奥妙

直接公布答案吧,第一种是对的,而为什么出现第二种呢  原因就是他们在转码之前将字符串进行了url编码

我们来重现一下

同样是这段json

{"test":"12345","name":"我是大帅"}

我们先 url转码:

得到:%7B%22test%22%3A%2212345%22%2C%22name%22%3A%22%E6%88%91%E6%98%AF%E5%A4%A7%E5%B8%85%22%7D

在进行base64:

就得到了不正确的base64:JTdCJTIydGVzdCUyMiUzQSUyMjEyMzQ1JTIyJTJDJTIybmFtZSUyMiUzQSUyMiV1NjIxMSV1NjYyRiV1NTkyNyV1NUUwNSUyMiU3RA==

 

 

结论 在使用在线工具的时候 要选择好!!!
文中使用的在线工具地址分别是:
1:https://base64.us/
2:https://www.zxgj.cn/g/base64

谢谢大家

posted @ 2022-05-23 15:49  loveCrane  阅读(2443)  评论(0编辑  收藏  举报