gpt4 book ai didi

java - 根据字符串生成不同的密码-激活 key

转载 作者:行者123 更新时间:2023-12-01 14:36:34 25 4
gpt4 key购买 nike

我正在尝试让我的程序在 Java 上通过密码激活。基本上,当用户注册时,将询问授权人员提供的“教师通行证”,如果正确,程序将允许用户使用自己。

学生也可以使用该程序,但他们无法访问其中的某些内容。

private static String encrypt()
{
String s = "CORNFLAKES";
String pass = "";
Random rnd = new Random();
int i = rnd.nextInt(s.length());
for(int j = 0; j < 7; j++)
{
pass += ""+ i + s.charAt(i);
i = rnd.nextInt(s.length());
}
return pass;
}

private static boolean decrypt (String s)
{
if(s.length() != 14)
return false;
String teacherPass = "CORNFLAKES";
String[] tokens = s.split("A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|Q|P|R|S|T|U|V|W|X|Y|Z");
int loc;
for(int i = 0; i< 7; i++)
{
loc = Integer.parseInt(tokens[i]);
if(s.charAt(2*i+1) != teacherPass.charAt(loc))
return false;
}


return true;
}

肯定有更好的解决方案,但它是什么?顺便说一句,我使用 MySQL 来保存用户信息。

最佳答案

您应该研究散列法来存储您的密码,然后在登录时再次散列它并比较散列值。

例如: http://en.wikipedia.org/wiki/SHA-2

散列(当正确使用和实现时)对于密码存储和验证具有非常好的属性:该过程无法逆转。因此,即使有人访问您的用户凭据表,他们也不会了解有关您的用户密码的任何信息。通过对新输入进行哈希处理并比较哈希值,可以根据存储的哈希值检查输入的密码。

此外,如果您不是安全专家,您绝对不应该自己编写这样的东西,因为您总是会犯一个小错误,从而导致整个系统不安全。使用合适的库。

您还应该研究哈希值的盐,但从简单的哈希值开始,一旦了解了基础知识就可以继续。

关于java - 根据字符串生成不同的密码-激活 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16442737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com