php - php中的base64编码/解码

标签 php

我在我的站点中实现了 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 ≈ 0.100113 非常接近 1/10,因此,对于一个非常好的近似值,随机 Base64 字符串不包含大写字母的概率每四个字符的长度下降 10 倍。

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

关于php - php中的base64编码/解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14022948/

相关文章:

php - 在唯一键上使用空值执行 "INSERT...ON DUPLICATE KEY UPDATE"的变通解决方案

javascript - 在 JavaScript 代码中访问 Laravel 关系

php - 从 woocommerce 类别的类别 slug 中获取所有子类别 id(也是它们的子类别)

php - 将我自己的静态网页添加到 wordpress 站点

php - ZF2 使用 zfcrbac zfcUser 和分层角色策略生成导航

javascript - HTML 多选提交在已添加值时中断

php - 显示每个用户创建的行数

PHP 和 MySql - 如何使此插入查询工作?

php - Laravel SwiftMailer : Expected response code 250 but got code "530", 消息“530-5.5.1 需要身份验证

php - 你应该做多少变量检查?