2016-12-14 23 views
2

是否有可能爲Base64編碼算法的兩個不同輸入獲取兩個相同的編碼值?Base64編碼始終是一對一

讓我們用另一種算法,例如,替換功能用字母X.

Foo_Bar = FooXBar 
FooXBar = FooXBar 

可這樣的事情曾經與Base64編碼發生凸顯了?

回答

4

不,它不會發生。 Base64是無損轉換(甚至還需要33%的空間)。在數學術語中,Base64函數是bijection

請注意HTTP basic access authentication如何使用此編碼作爲用戶名和密碼。任何人都可以從編碼的字符串中獲取原始字符串,因此,僅在HTTPS下才能使用此身份驗證。

您還可以在Wikipedia上找到有關Base64的更多詳細信息。

2

不,base64只是將二進制數據編碼爲可打印字符的一種方式。

嚴格來說,它只是一個數字系統,如二進制(基數2),十進制(基數10)或十六進制(基數16)。就像你可以在base 64之間進行無損轉換一樣。事實上,數學基礎是不相關的,只用於符號和人類使用,不管你使用什麼基數,數學都是等價的。