我需要为20位数(数字)的PDF文件指定一个随机名称。此代码必须从唯一的人员ID生成。
示例:
Person ID File name
---------- ------------------------
40352142N ---------> random code generator -------> XXXXXXXXXXXXXXXXXXXX.pdf
如果您也可以从文件名生成人员ID,那就太棒了。它必须是可逆的,但前提是你知道公式。
在PHP或ASP中执行此操作的最佳方法是什么。关于如何优雅地实现这一点的任何想法?
谢谢!
答案 0 :(得分:0)
<?php
function randomNumber( $len) {
$rand = '';
while( !( isset( $rand[$len-1] ) ) ) {
$rand .= mt_rand( );
}
return substr( $rand , 0 , $len );
}
echo randomNumber(20); ?&GT;
使用此代码
答案 1 :(得分:0)
试试这个: -
$_rand = "0123456789abcdefghijklmnopqrstuvwxyz";
$str = '';
for( $i = 0; $i < 20; $i++ )
{
$str .= substr( $_rand, rand( 0, ( strlen( $_rand ) - 1 ) ), 1 );
}
答案 2 :(得分:0)
使用sha1获取唯一的哈希值,然后我们将每个char转换为数字。 注意:这会降低sha1的稳健性,因为我们只使用它的一部分。加上模数并不完全正确,因为它适用于255的范围。
<?php
$sha = sha1('test', 1);
$name = '';
for($i = 0; $i < 20; ++$i) {
$name .= ord($sha[$i])%10;
}
echo $name;