在這裏我們有一個場景來編碼文件名,並希望在檢索時對其進行解碼。 如果我用md5編碼它,我不能解碼它,因爲它是單向散列,如果我用'base64_encode'編碼它,那麼如果兩個同名的文件在檢索時會導致與我的數據衝突。在php中是否有任何獨特的編碼和解碼功能?
所以我想知道是否有在PHP中的任何獨特的編碼功能編碼和以後解碼。
在此先感謝!
在這裏我們有一個場景來編碼文件名,並希望在檢索時對其進行解碼。 如果我用md5編碼它,我不能解碼它,因爲它是單向散列,如果我用'base64_encode'編碼它,那麼如果兩個同名的文件在檢索時會導致與我的數據衝突。在php中是否有任何獨特的編碼和解碼功能?
所以我想知道是否有在PHP中的任何獨特的編碼功能編碼和以後解碼。
在此先感謝!
你可以使用BASE64_ENCODE和前面加上這樣一個唯一的標識符:
$encoded = base64_encode(uniqid().$filename); //$filename is your filename
而且像這樣解碼:
$decoded = base64_decode($encoded);
$filename = substr($decoded, 13);
這將基本上給你這是唯一的文件名的編碼字符串,可以顛倒爲文件名。
所以你想要一個雙向加密算法,將相同的輸入給不同的結果? – lonesomeday 2012-01-11 10:11:59
嘆氣,MD5是**不**編碼。除此之外,它也會爲相同的輸入返回相同的哈希值,非常類似於base64_encode將返回相同輸入的相同base64字符串 – knittl 2012-01-11 10:13:03
您試圖解決什麼問題? – knittl 2012-01-11 10:15:16