gpt4 book ai didi

java - 使用 Java 加密敏感应用程序数据

转载 作者:行者123 更新时间:2023-12-01 06:21:11 28 4
gpt4 key购买 nike

我目前正在评估一个处理高度敏感的个人信息的项目,因此需要对其进行加密。我们谈论的是数百兆字节的多媒体文件,例如 MP3 或其他文件。该应用程序肯定会用 Java 实现,并使用 JavaFX 作为 GUI/前端。现在我正在寻找一种可行的解决方案来保护该数据免遭无意/有意的滥用。数据需要以某种方式加密。用户在使用该软件之前需要提供登录凭据,因此可以使用密码解锁用于对称加密的 key 。该应用程序的用户将不是专业人士,因此 TrueCrypt 或类似解决方案之类的东西不会起作用。尽管某种透明的解决方案是最好的。那么这个问题有没有(半)标准的解决方案呢?

感谢您的帮助

问候,

安德烈亚斯

最佳答案

以下方法对给定的字节数组进行加密,其中 keyC 是加密 key 。initalVector 是用于加密的初始 vector 。该 vector 通常用于计数器 (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 字节 block 的形式工作。对于较大的文件,您需要对字节运行 for 循环并连接结果:)

祝你好运!

编辑:加密 16 字节 block 后,您需要增加初始 vector ,即加密运行在 Counter 模式下:)

关于java - 使用 Java 加密敏感应用程序数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4403793/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com