我有 1-62 范围内的数字我希望能够“加密”它们,因此很难猜测它们是按某种顺序生成的。
所以,应该是一些映射,例如
1->35 2->19 3->61 ...
这样我就有了 1 对 1 的映射,100% 可逆。
我可以对映射进行硬编码,但我更喜欢数学解决方案,某种以数字为参数的公式,并产生 1-62 范围内的数字,并且不会生成重复项。这个公式有没有可能存在?
仅用于历史,验证脚本:
<?
$test = array();
$val = 37;
for($i=0;$i<62;$i++)
{
if($test[($i*$val)%62])
{
print("Collision: $i ".$test[($i*$val)%62]."<br/>");
}
$test[($i*$val)%62] = $i;
print("$i => ".(($i*$val)%62)."<br/>");
}
?>
更新:
以下是由于这些答案而生成的 ID:
qpOLHk
NMb84H
aI740D
x5urn0
UsROKn
hPeb7K
EcByu7
1zYVRu
oWlieR
LjIFBe
8G52YB
v3splY
SqPMIl
fNc95I
Cazws5
ZxWTPs
mUjgcP
JhGDzc
6E30Wz
亲爱的:-)