如何在java中使用blowfish加密生成安全密码?

时间:2018-02-14 17:35:26

标签: android android-studio encryption passwords blowfish

目前我正在尝试生成安全密码,我有下一个方法:

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>

问题是我的方法使用相同的单词生成不同的字符串,因此密码永远不会匹配。

  1. input = qwerty - > output - > [B @ 327b2e35
  2. input = qwerty - > output - > [B @ 1b045c1
  3. 也许我做错了什么,我想知道它

    感谢您的回答

0 个答案:

没有答案