我们需要加密json文件以及其他文件格式(例如,文本,主要是json ),这些文件将存储在文件系统中(很可能是窗口),并将使用usb或其他媒体移动到批处理系统中并在那里解密。
请建议我们在这方面的最佳做法。我正在对此进行研究,并发现了JOSE对象的签名和加密,但我只想在前进之前确定一下。
谢谢XslGuy
发布于 2015-12-28 11:44:57
你似乎想要加密文件而不是对象。这在很大程度上排除了JOSE,因为这是关于加密/签名对象,而不是文件。
这似乎是PGP加密的主要候选。使用PGP,您可以将私钥保存在后台办公室,在那里进行加密,并使用PGP公钥进行加密。这样,加密系统就不必知道加密密钥了。
有许多库和密钥管理工具来执行PGP文件的加密/解密,这使得对加密/解密的测试变得非常容易。
对于Java来说,弹跳城堡将是主要的候选对象。如果您遇到麻烦,开发邮件列表的B儿GY城堡是主要的信息来源-首先搜索它。
发布于 2015-12-28 14:34:26
这里是一个不使用第三方库的简单加密/解密实现。这是一个河豚的实现。
public static String encrypter(String value) {
try {
SecretKeySpec key = new SecretKeySpec("My_Secret_Key".getBytes(), "Blowfish");
Cipher cipher = Cipher.getInstance("Blowfish");
cipher.init(Cipher.ENCRYPT_MODE, key);
byte[] plainTxtBytes = value.getBytes("UTF-8");
byte[] encBytes = cipher.doFinal(plainTxtBytes);
return new sun.misc.BASE64Encoder().encode(encBytes);
} catch (Exception ex) {
return value;
}
}
public static String decrypter(String value) {
try {
SecretKeySpec key = new SecretKeySpec("My_Secret_Key".getBytes(), "Blowfish");
Cipher cipher = Cipher.getInstance("Blowfish");
cipher.init(Cipher.DECRYPT_MODE, key);
byte[] encBytes = new sun.misc.BASE64Decoder().decodeBuffer(value);
byte[] plainTxtBytes = cipher.doFinal(encBytes);
return new String(plainTxtBytes);
} catch (Exception ex) {
return value;
}
}河豚是一种对称密钥分组密码.了解更多关于it的信息,这里。
https://stackoverflow.com/questions/34487879
复制相似问题