【问题标题】:Is there any unique encoding and decoding functions in php?php中是否有任何独特的编码和解码功能?
【发布时间】:2012-01-11 10:09:19
【问题描述】:

这里我们有一个对文件名进行编码并希望在检索时对其进行解码的场景。 如果我使用 md5 对其进行编码,我无法对其进行解码,因为它是一种散列方式,并且如果我使用“base64_encode”对其进行编码,那么如果两个具有相同名称的文件在检索时会导致我的数据发生冲突。

所以我想知道 PHP 中是否有任何独特的编码函数可以进行编码,然后再进行解码。

提前致谢!!!!

【问题讨论】:

  • 所以你想要一个双向加密算法,对于相同的输入会给出不同的结果?
  • 唉,MD5 是不是编码的。此外,它还会为相同的输入返回相同的哈希值,就像 base64_encode 将为相同的输入返回相同的 base64 字符串
  • 您要解决的问题是什么?
  • ya knitti,你很习惯 md5 在编码时也会给出相同的字符串...我想知道天气在 php 中有一个库函数用于对字符串进行唯一编码,我也想在同一时间..
  • 正是loesomeday先生……我想照你说的做……

标签: php function encoding unique


【解决方案1】:

您可以使用 base64_encode 并预先添加一个唯一标识符,如下所示:

$encoded = base64_encode(uniqid().$filename); //$filename is your filename

然后像这样解码:

$decoded = base64_decode($encoded);
$filename = substr($decoded, 13);

这基本上会给你一个文件名的编码字符串,它是唯一的,可以反转为文件名。

【讨论】:

  • 唯一 id 在感觉 rand 数字上最多四位数,就像你说的那样?
  • uniqid() 是一个 php 函数,为您提供 13 位微时间,这对于服务器来说是唯一的,您不会像随机数那样发生冲突。代码实际上是按原样工作的。
  • 你救了我。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-02
  • 2022-10-13
  • 2021-04-20
  • 2011-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多