我目前正在评估一个项目,其中高度敏感的个人信息需要处理,因此需要加密。我们谈论的是几个100兆字节的多媒体文件,比如MP3或其他东西。这个应用程序肯定是用JavaFX作为图形用户界面/前端的Java语言实现的。现在,我正在寻找一种可行的解决方案,以保护这些数据免受无意/故意的滥用。数据需要以某种方式加密。用户在使用软件之前需要提供登录凭据,因此可以使用密码解锁用于对称加密的密钥。该应用程序的用户将是非专业用户,因此像TrueCrypt或类似的解决方案将无法完成此任务。尽管某种透明的解决方案是最好的。那么这个问题有没有(半)标准的解决方案呢?
谢谢你的帮助
大家好,
安德烈亚斯
发布于 2010-12-13 22:47:54
下面的方法对给定的字节数组进行加密,其中keyC是加密密钥。initalVector是用于加密的初始向量。此向量通常用于计数器(CTR)模式下的AES加密,但对于其他模式则不是必需的。它是一个特定16字节的数组,用于加密和解密。
private byte[] encryptAES128(byte[] input, byte[] initialVector) {
SecretKey aeskey = new SecretKeySpec(keyC, 0, 16, "AES");
AlgorithmParameterSpec paramSpec = new IvParameterSpec(initialVector);
cipher = Cipher.getInstance("AES/CTR/NOPADDING");
getAesCTRCipher().init(Cipher.ENCRYPT_MODE, aeskey, paramSpec);
return getAesCTRCipher().doFinal(input);
}此方法返回一个新的字节数组,即加密的输入数组。它总是以16字节块的形式工作。对于较大的文件,您需要在字节上运行For循环并连接结果:)
祝好运!
编辑:在加密一个16字节的块之后,您需要递增初始向量,也就是说,如果加密运行在计数器模式下:)
发布于 2010-12-10 06:54:21
使用公钥加密算法,例如RSA。强大,几乎不可破解,易于使用和理解。在Java中甚至可能有一个用于RSA或类似加密的方法或类。
https://stackoverflow.com/questions/4403793
复制相似问题