在这里我们有一个场景来编码文件名,并希望在检索时对其进行解码。 如果我用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