簡體   English   中英

在php中進行base64編碼/解碼

[英]base64 encoding/decoding in 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字符串的對應概率(對應於a隨機9字節輸入)約為0.1%,依此類推。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM