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转换,最好是不要用在加密上,尤其是参数加密,很容易出问题。