我试图从服务器端生成唯一的用户名,并使用他们在注册登录表单时输入的个人详细信息将其分发给用户。这是为了制作更安全的用户名并避免黑客攻击。
所以,这是我的问题:如何从他们的个人信息(如名字、姓氏、年龄和出生日期)中生成唯一且不可预测的用户名。用户名不应遵循我们现在在 gmail 等注册表单中的任何顺序。没有什么比使用名字的首字母和姓氏或名字中的三个字母等等。用户名应该是完全不可预测的。
提前致谢!
那你为什么要让名字取决于他们的细节呢?只需生成一些均匀分布的字母串,比如vwneuibx
(足够长,这样你就不会很快用完名字),这样的名字没人会猜到,但也不容易记住。
更安全的方法是对一些盐和您指定的个人数据进行哈希处理。
idk也许是这样的......
function random_name($length){
$characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$name = "";
for($i = 0; $i < $length; $i++){
$name .= $characters[mt_rand(0,strlen($characters) - 1)];
}
return $_POST['first'].$name;
}