base64编码解码的过程中需要注意的问题
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转换,最好是不要用在加密上,尤其是参数加密,很容易出问题。