php中的base64编码/解码

php中的base64编码/解码,php,Php,我已经在我的站点中实现了cookie机制。 我想存储的所有cookie都在一个数组中,包含它们的TTL、值、名称 当我想要设置cookie时,我序列化选项卡,然后压缩,最后进行base64_编码 base64_encode(gzcompress(serialize($array))) 我的问题是有时候,当我拿着饼干的时候 $_COOKIE[name] base64_编码的字符串都是小写字符 所以我的问题是: -是否可能所有字符都是小写格式(base64_编码) 或者可能我做错了什么,但问题并

我已经在我的站点中实现了cookie机制。 我想存储的所有cookie都在一个数组中,包含它们的TTL、值、名称

当我想要设置cookie时,我序列化选项卡,然后压缩,最后进行base64_编码

base64_encode(gzcompress(serialize($array)))
我的问题是有时候,当我拿着饼干的时候

$_COOKIE[name]
base64_编码的字符串都是小写字符

所以我的问题是: -是否可能所有字符都是小写格式(base64_编码)


或者可能我做错了什么,但问题并不总是出现,我无法重现错误。

是的,Base64编码的字符串可以全部为小写。发生这种情况的概率(对于压缩数据非常接近的随机输入数据)约为(36/64)4 N/3,其中N是以字节为单位的输入长度,因此4 N/3是输出的近似长度(不包括填充)

碰巧,(36/64)4&大约;0.100113非常接近1/10,因此,对于非常好的近似值,随机Base64字符串不包含大写字母的概率每四个字符长度下降10倍


因此,例如,随机8个字符的Base64字符串(对应于随机6字节输入)不包含大写字母的概率约为1%,而随机12个字符的Base64字符串(对应于随机9字节输入)的相应概率约为0.1%,诸如此类。

在解析cookie之前,您不能使用strtolower吗?base64\u decode是否不能为您提供正确的压缩数据?请显示完整的代码。如何准备和保存数据,如何恢复主题,但要在cookie中放入多少数据?请记住,对于浏览器和服务器之间的每个请求/响应,cookie的全部内容都会在两个方向上完全传输。如果您有一个较大的cookie字符串,并且您的站点发出的请求多于几个,那么这可能会对性能产生明显的影响。如果是这种情况,您可能会发现
$\u SESSION
是一个更好的存储它的地方(这也将方便地消除所有序列化和编码的需要)