feling.net/rank/base64-08.md

2.3 KiB
Raw Permalink Blame History

title layout keywords date source description
base64编码解码的过程中需要注意的问题 pages
base64图片
base64编码解码
2020-06-28 艾乎网 base64编码解码是基于64个可打印字符用来表示数据的二进制常用于数据的网络传送功能。

base64编码解码是网络上最常见的用于传输8Bit字节代码的编码方式之一该编码可用于在 HTTP 环境下传递较长的标识信息。那么在技术开发方面选择合作方的时候就要慎重了。而漳州开发区聆熵信息技术服务工作室成立于2019年5月。目前主要业务为软件开发已与北京理工大学先进加工研究所等高校实验室达成合作。 共同将以公式、算法等形式存在的科研成果,转化为具有实际应用价值的应用软件。同时,在使用该编码的时候,还需要注意几个问题。

一、Base64和URL传参问题标准的 Base64 并不适合直接放在 URL 里传输因为URL编码器会把标准 Base64 中的 /+ 字符变为形如 %XX 的形式,而这些 % 号在存入数据库时还需要再进行转换因为ANSI SQL中已将%号用作通配符。

为解决此问题可采用一种用于URL的改进 Base64编码它在末尾填充 = 号,并将标准 Base64 中的 +/ 分别改成了 -_,这样就免去了在 URL 编解码和数据库存储时所要作的转换,避免了编码信息长度在此过程中的增加,并统一了数据库、表单等处对象标识符的格式。

二、Base64和URL传参问题改善另有一种用于正则表达式的改进Base64变种它将 +/ 改成了 !-,因为 +, * 以及前面在IRCu中用到的 [] 在正则表达式中都可能具有特殊含义。

此外还有一些变种,它们将 +/ 改为 _-._(用作编程语言中的标识符名称)或 .-用于XML中的Nmtoken甚至 _用于XML中的Name

三、Base64转换后比原有的字符串长1/3Base64要求把每三个8Bit的字节转换为四个6Bit的字节 3 * 8 = 4 * 6 = 24然后把6Bit再添两位高位0组成四个8Bit的字节也就是说转换后的字符串理论上将要比原来的长1/3。

四、Base64转换总结Base64转换最好是不要用在加密上尤其是参数加密很容易出问题。