将密钥保存到derby数据库

时间:2015-02-24 15:59:34

标签: java database derby blowfish secret-key

我正在使用blowfish算法来加密图像和解密图像。我的程序没有任何问题,但我试图对它进行一些小修改。目前生成的密钥只是临时保存在密钥变量中,但我想将其永久保存到derby数据库中,以便将来可以使用它。

我的问题是 列应该以德比来保存密钥的数据类型是什么?(即: - 大整数,varchar等) 我可以直接将其保存到数据库吗?

谢谢。

以下是我生成密钥的代码。

public FunctionClass() {  
         try {  
            keyGenerator = KeyGenerator.getInstance("Blowfish");  
            secretKey = keyGenerator.generateKey();  

           cipher = Cipher.getInstance("Blowfish");  
        } catch (NoSuchPaddingException ex) {  
           System.out.println(ex);  
        } catch (NoSuchAlgorithmException ex) {  
            System.out.println(ex);  
       }  
}

1 个答案:

答案 0 :(得分:1)

您可以将密钥编码为String,并使用适当的数据类型(如Varchar

)存储字符串
String encodedKey = Base64.getEncoder().encodeToString(secretKey.getEncoded());

密钥可以重建如下:

// decode the base64 encoded string
byte[] decodedKey = Base64.getDecoder().decode(encodedKey);
// rebuild key using SecretKeySpec
SecretKey originalKey = new SecretKeySpec(decodedKey, 0, decodedKey.length, keyGenerator.getAlgorithm());