我在我的网站上实现了cookie机制.
我想要存储的所有cookie都在一个包含TTL,值,名称的数组中……
当我想设置cookie时,我序列化选项卡,然后我gzcompress,最后我base64_encode
base64_encode(gzcompress(serialize($array)))
我的问题是某个时候,当我得到cookie时
$_COOKIE[name]
base64_encoded字符串全部为小写字符.
所以我的问题是:
– 可能所有字符都是小写格式(base64_encoded)
或者也许我做错了,但问题不会一直出现,我无法重现这个错误.
解决方法:
是的,Base64编码的字符串可以全部小写.发生这种情况的概率(对于随机输入数据,压缩数据非常接近)约为(36/64)4 N / 3,其中N是输入的长度(以字节为单位),因此4 N / 3是近似值输出长度(不包括填充).
碰巧,(36/64)4& about; 0.100113非常接近1/10,因此,对于非常好的近似,随机Base64字符串不包含大写字母的概率每四个字符的长度下降10倍.
因此,例如,随机的8字符Base64字符串(对应于随机的6字节输入)有大约1%的可能性不包含大写字母,而随机12字符的Base64字符串的对应概率(对应于a随机9字节输入)约为0.1%,依此类推.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。