Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 创建随机短字符串[a-zA-Z0-9]+_Php - Fatal编程技术网

Php 创建随机短字符串[a-zA-Z0-9]+

Php 创建随机短字符串[a-zA-Z0-9]+,php,Php,创建短6个字符、随机和低碰撞概率的最佳方法是什么?我需要创建像bit.ly这样的短链接 md5、sha1、uniqid等的问题是它们不生成大写字符,因此我正在寻找一个区分大小写的输出,以具有更大范围的可能值 我喜欢用在这类事情上: Hashids是一种从数字生成短的、唯一的、非顺序的id的方法 它将347这样的数字转换为“yr8”这样的字符串,或将[27986]这样的数字数组转换为“3kTMd” 您还可以将这些ID解码回来。这对于将多个参数捆绑到一个参数中或将其作为短UID使用非常有用 hash

创建短6个字符、随机和低碰撞概率的最佳方法是什么?我需要创建像bit.ly这样的短链接

md5、sha1、uniqid等的问题是它们不生成大写字符,因此我正在寻找一个区分大小写的输出,以具有更大范围的可能值

我喜欢用在这类事情上:

Hashids是一种从数字生成短的、唯一的、非顺序的id的方法

它将347这样的数字转换为“yr8”这样的字符串,或将[27986]这样的数字数组转换为“3kTMd”

您还可以将这些ID解码回来。这对于将多个参数捆绑到一个参数中或将其作为短UID使用非常有用

hashid已经移植到多种语言


请注意,尽管名称不同,Hashids并不是一个真正的哈希系统,因为它被设计为可逆的。

类似于chrrandom_int65、122的东西,加上对您确切接受的字符的一些处理,可以提供尽可能好的随机性;这是否是一个正确的开始,虽然是有争议的。好主意,但范围应该是48-57,65-90,97-122。你知道怎么做吗?也许我可以使用一个映射数组[0=>'a',1=>'b',…],然后随机输入索引中的任意可能性…生成随机整数,直到你在你想要的范围内得到一个为止,按照你的建议使用一个简单的映射,如果>57加8进入65-90范围,做一点数学运算,否则加7进入97-122范围等等。。