目前我正在尝试生成安全密码,我有下一个方法:
public String blowfishEncrypt(String pass){
//String encPass = BCrypt.hashpw(pass, BCrypt.gensalt(12));
//return encPass;
try{
//KeyGenerator keygenerator = KeyGenerator.getInstance("Blowfish");
String key = "q2eRE#$%FwdfsdfCS#$@wDwfV3evf$&%";
byte[] keyData = key.getBytes();
SecretKeySpec KS = new SecretKeySpec(keyData, "Blowfish");
//SecretKey secretkey = keygenerator.generateKey();
Cipher cipher = Cipher.getInstance("Blowfish");
cipher.init(Cipher.ENCRYPT_MODE, KS);
byte[] encrypted = cipher.doFinal(pass.getBytes());
return encrypted+"";
}catch(Exception e){
e.printStackTrace();
return "error";
}
}
每次访问该方法时都会产生不同的字符串,即使我使用的是静态密钥并且我引入了相同的单词。
我还认为不确定使用显式密钥(在代码中手动添加)。
我的想法是加密引入的文本并将其添加到数据库(加密),然后,如果用户尝试登录,则引入的文本将被加密并与数据库中的文本进行比较。 / p>
问题是我的方法使用相同的单词生成不同的字符串,因此密码永远不会匹配。
也许我做错了什么,我想知道它
感谢您的回答