Pavlo B. Asked: 2020-11-04 04:19:27 +0800 CST 2020-11-04 04:19:27 +0800 CST 2020-11-04 04:19:27 +0800 CST 如何创建 X 位的随机十六进制数? 772 如何创建一个随机的十六进制数,比如 5 位数字?也就是说:A31D4。 执行以下操作: $mirand = dechex(rand()); 它为我生成随机数,但有时它们是 3 位数字,大多数时候它们是 4,从不 5。 php 4 Answers Voted Shaz 2020-11-04T04:26:58+08:002020-11-04T04:26:58+08:00 我一直很喜欢这个解决方案,它可能使用了一种不太正统的方法,但它对我有用,它简单而简短: substr(md5(rand()), 0, 5); rand()如果您愿意,可以在其中输入一系列值。 Best Answer AntoTGa 2020-11-04T04:25:36+08:002020-11-04T04:25:36+08:00 我创建了以下函数,它接收十六进制代码必须具有的位数作为参数。 <?php function hexadecimalAzar($caracteres){ $caracteresPosibles = "0123456789abcdef"; $azar = ''; for($i=0; $i<$caracteres; $i++){ $azar .= $caracteresPosibles[rand(0,strlen($caracteresPosibles)-1)]; } return $azar; } echo hexadecimalAzar(5); ChemaCortes 2020-11-04T05:30:00+08:002020-11-04T05:30:00+08:00 对于偶数个字符,一些简短的内容: function hexadecimalAzar($caracteres){ $bytes = random_bytes($caracteres/2); return bin2hex($bytes); } 对于最一般的情况,您将不得不编写更多代码。 编辑: ...和一般情况: function hexadecimalAzar($caracteres){ $bytes = random_bytes($caracteres/2 + 1); return substr(bin2hex($bytes), 0, $caracteres); } J.Correa 2020-11-09T14:29:32+08:002020-11-09T14:29:32+08:00 使用 Php7 我会这样做: function decimal_hex ():string { $n = dechex(rand(1, 100)); return $n; } echo decimal_hex(); 由于 Php 具有将十进制转换为十六进制的本机函数(链接文档),因此您只需获取随机十进制并将其转换为十六进制。 如果你想要 n 个值,你可以在循环中调用函数: $n = 100; while ($n) { echo decimal_hex() . '</br>'; $n--; } 但如何使用该功能取决于您。它仍然可以是这样的: function decimal_hex ():string { return dechex(rand(1, 100)); } 最后,:string是 Php7 的一个新特性,您可以使用它来指示返回值的类型,在本例中是字符串,因为它可以返回字母和数字。 问候。
我一直很喜欢这个解决方案,它可能使用了一种不太正统的方法,但它对我有用,它简单而简短:
rand()
如果您愿意,可以在其中输入一系列值。我创建了以下函数,它接收十六进制代码必须具有的位数作为参数。
对于偶数个字符,一些简短的内容:
对于最一般的情况,您将不得不编写更多代码。
编辑:
...和一般情况:
使用 Php7 我会这样做:
由于 Php 具有将十进制转换为十六进制的本机函数(链接文档),因此您只需获取随机十进制并将其转换为十六进制。
如果你想要 n 个值,你可以在循环中调用函数:
但如何使用该功能取决于您。它仍然可以是这样的:
最后,:string是 Php7 的一个新特性,您可以使用它来指示返回值的类型,在本例中是字符串,因为它可以返回字母和数字。
问候。