将密钥保存到 derby 数据库
Saving Secret key to derby datase
我正在使用河豚算法来加密图像和解密图像。我的程序运行没有任何问题,但我正在尝试对其进行小幅修改。目前生成的密钥只是暂时保存在密钥变量中,但我想将其永久保存到德比数据库中,以便将来使用它。
我的问题是
列应该在德比中保存密钥的数据类型是什么?(即:- 大整数、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);
}
}
您可以将密钥编码为字符串并使用适当的数据类型(如 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());
我正在使用河豚算法来加密图像和解密图像。我的程序运行没有任何问题,但我正在尝试对其进行小幅修改。目前生成的密钥只是暂时保存在密钥变量中,但我想将其永久保存到德比数据库中,以便将来使用它。
我的问题是 列应该在德比中保存密钥的数据类型是什么?(即:- 大整数、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);
}
}
您可以将密钥编码为字符串并使用适当的数据类型(如 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());