使用字符串作为'生成唯一字符串'用PHP

时间:2015-04-20 15:04:54

标签: php wordpress unix-timestamp uniqueidentifier base-conversion

我需要在PHP中生成一个唯一的字符串。

目前我正在使用像这样的技术

$clipId = base_convert(microtime(), 8, 36);

但是,由于这是基于时间的,因此在重新呈现页面时ID会发生变化,我需要始终保持不变。

如果有一种方法可以将图片网址和后标题作为字符串输入以输出字母数字ID,那将是完美的,而且是随机的'足够我在这里需要做的事情。此外,如果有可能将图像上传到Wordpress的unix-time(连同创建帖子的unix-time的时间),我可以使用它。

1 个答案:

答案 0 :(得分:2)

因此,您需要一种将一个字符串转换为另一个字符串的算法。这不是随机的,可以是编码哈希。编码仅以不同的术语表示相同的值,例如base64_encode。您可以根据需要来回转换原始字符串和编码表单。

或者,您可能希望像SHA1或MD5这样的 hash 将任意输入转换为固定长度的输出。您可以将哈希值转换回原始值。

或者,您可以使用由伪随机数生成器生成的完全随意的随机字符串。这些生成器需要以初始值种子,然后返回可预测且可重复的一系列看似随机的数字。如果您使用相同的值对其进行播种,它将返回相同的随机数序列。您可以使用它来生成与您的字符串没有直接关联但在必要时仍可重现的随机数。例如mt_randmt_srand