标签:style blog color 使用 ar div 算法 时间
$salt = base_convert(sha1(uniqid(mt_rand(), true)), 16, 36); $fields = array( ‘salt‘ => $salt, ‘password‘ => $this->getPasswordEncoder()->encodePassword($password, $salt), );
1、mt_rand();
PHP mt_rand() 函数 PHP Math 函数 定义和用法 mt_rand() 使用 Mersenne Twister 算法返回随机整数。 语法 mt_rand(min,max) 说明 如果没有提供可选参数 min 和 max,mt_rand() 返回 0 到 RAND_MAX 之间的伪随机数。例如想要 5 到 15(包括 5 和 15)之间的随机数,用 mt_rand(5, 15)。 很多老的 libc 的随机数发生器具有一些不确定和未知的特性而且很慢。PHP 的 rand() 函数默认使用 libc 随机数发生器。mt_rand() 函数是非正式用来替换它的。该函数用了 Mersenne Twister 中已知的特性作为随机数发生器,它可以产生随机数值的平均速度比 libc 提供的 rand() 快四倍。 提示和注释 注释:自 PHP 4.2.0 起,不再需要用 srand() 或 mt_srand() 函数给随机数发生器播种,现在已自动完成。 注释:在 3.0.7 之前的版本中,max 的含义是 range 。要在这些版本中得到和上例相同 5 到 15 的随机数,简短的例子是 mt_rand (5, 11)。 例子 在本例中,我们会返回一些随机数: <?php echo(mt_rand()); echo(mt_rand()); echo(mt_rand(10,100)); ?> 输出类似: 3150906288 513289678 35
2、uniqid(mt_rand(), true)
PHP uniqid() 函数 PHP 杂项函数 定义和用法 uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID。 语法 uniqid(prefix,more_entropy) 参数 描述 prefix 可选。为 ID 规定前缀。如果两个脚本恰好在相同的微秒生成 ID,该参数很有用。 more_entropy 可选。规定位于返回值末尾的更多的熵。 说明 如果 prefix 参数为空,则返回的字符串有 13 个字符串长。如果 more_entropy 参数设置为 true,则是 23 个字符串长。 如果 more_entropy 参数设置为 true,则在返回值的末尾添加额外的熵(使用组合线形同余数生成程序),这样可以结果的唯一性更好。 返回值 以字符串的形式返回唯一标识符。 提示和注释 注释:由于基于系统时间,通过该函数生成的 ID 不是最佳的。如需生成绝对唯一的 ID,请使用 md5() 函数(请在字符串函数参考中查找)。 例子 <?php echo uniqid(); ?> 输出类似: 4415297e3af8c
3、sha1(uniqid(mt_rand(), true))
PHP sha1() 函数 PHP String 函数 定义和用法 sha1() 函数计算字符串的 SHA-1 散列。 sha1() 函数使用美国 Secure Hash 算法 1。 如果成功,则返回所计算的 SHA-1 散列,如果失败,则返回 false。 语法 sha1(string,raw) 参数 描述 string 必需。规定要计算的字符串。 raw 可选。规定十六进制或二进制输出格式: TRUE - 原始 20 字符二进制格式 FALSE - 默认。40 字符十六进制数 注释:该参数是 PHP 5.0 中添加的。 例子 例子 1 <?php $str = ‘Hello‘; echo sha1($str); ?> 输出: f7ff9e8b7bb2e09b70935a5d785e0cc5d9d0abf0 例子 2 在本例中,我们将输出 sha1() 的结果,然后对其测试: <?php $str = ‘Hello‘; echo sha1($str); if (sha1($str) == ‘f7ff9e8b7bb2e09b70935a5d785e0cc5d9d0abf0‘) { echo "<br />Hello world!"; exit; } ?> 输出: f7ff9e8b7bb2e09b70935a5d785e0cc5d9d0abf0 Hello world!
4、base_convert(sha1(uniqid(mt_rand(), true)), 16, 36)
PHP base_convert() 函数 PHP Math 函数 定义和用法 base_convert() 函数在任意进制之间转换数字。 语法 base_convert(number,frombase,tobase) 参数 描述 number 必需。原始值。 frombase 必需。数字原来的进制。 tobase 必需。要转换的进制。 说明 返回一个字符串,包含 number 以 tobase 进制的表示。number 本身的进制由 frombase 指定。frombase 和 tobase 都只能在 2 和 36 之间(包括 2 和 36)。高于十进制的数字用字母 a-z 表示,例如 a 表示 10,b 表示 11 以及 z 表示 35。 例子 1 把八进制数转换为十进制数: <?php $oct = "0031"; $dec = base_convert($oct,8,10); echo "八进制的 $oct 等于十进制的 $dec。"; ?> 输出: 八进制的 0031 等于十进制的 25。 例子 2 把八进制数转换为十六进制数: <?php $oct = "364"; $hex = base_convert($oct,8,16); echo "八进制的 $oct 等于十六进制的 $hex。"; ?> 输出: 八进制的 364 等于十六进制的 f4。
标签:style blog color 使用 ar div 算法 时间
原文地址:http://www.cnblogs.com/huidaoli/p/3881286.html