2014-03-29 149 views
0

您好,我的問題是,每次我們運行腳本base64_encode會做獨特的數據?base64_encode是否提供唯一的數據?

下面是代碼。

<?php 
    $id = 1; 
    echo base64_encode($id); 
    ?> 

如果它不提供每次唯一的數據那麼在編碼字符串和傳入url中有什麼意義。這是否使網址安全?

回答

2

Base64編碼不是一種加密方法。它用於將二進制數據編碼爲文本,這使得通過互聯網傳輸更安全。

如果您流位,一些協議可能會解釋它不同。流式文本更可靠。

What is base 64 encoding used for?

如果你需要真正的加密,你需要使用的哈希根據您可以從其他用戶,如mcrypt的庫藏鹽的東西。的base64編碼

http://php.net/manual/en/book.mcrypt.php

1

Base64 encoding是一種僅使用有限的一組字符表示數據的方式。當您需要將數據存儲在無法處理其原始格式的數據的cookie中時,可以使用它。

2

不提供唯一的數據。其目的是以字符串形式提供二進制數據的緊湊表示。在你的例子中,你編碼的是非二進制數據,所以它不是很實用。但是,如果要編碼包含換行符和標點符號的字符串並通過URL傳遞它,則不能直接發送二進制數據。

例如,如果您有字符串Hello, World!!\n,則會有三個標點符號,一個空格和一個換行符,它們都需要進行URL編碼。這樣做的結果如下:

Hello%2C+World%21%21%0A 

這是23個字節長。

。如果您是爲base64編碼相同的字符串另一方面,其結果必然是:

SGVsbG8sIFdvcmxkISEK 

這是20個字符,或縮短約13%。如果您有很多非字母數字字符或大量數據,這會快速加起來。

因此,base64編碼的主要優點是其對某些數據的稍微更緊湊的表示。

相關問題