首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Java中加密敏感应用程序数据

在Java中加密敏感应用程序数据
EN

Stack Overflow用户
提问于 2010-12-10 06:29:33
回答 2查看 1.4K关注 0票数 1

我目前正在评估一个项目,其中高度敏感的个人信息需要处理,因此需要加密。我们谈论的是几个100兆字节的多媒体文件,比如MP3或其他东西。这个应用程序肯定是用JavaFX作为图形用户界面/前端的Java语言实现的。现在,我正在寻找一种可行的解决方案,以保护这些数据免受无意/故意的滥用。数据需要以某种方式加密。用户在使用软件之前需要提供登录凭据,因此可以使用密码解锁用于对称加密的密钥。该应用程序的用户将是非专业用户,因此像TrueCrypt或类似的解决方案将无法完成此任务。尽管某种透明的解决方案是最好的。那么这个问题有没有(半)标准的解决方案呢?

谢谢你的帮助

大家好,

安德烈亚斯

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-13 22:47:54

下面的方法对给定的字节数组进行加密,其中keyC是加密密钥。initalVector是用于加密的初始向量。此向量通常用于计数器(CTR)模式下的AES加密,但对于其他模式则不是必需的。它是一个特定16字节的数组,用于加密和解密。

代码语言:javascript
复制
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字节的块之后,您需要递增初始向量,也就是说,如果加密运行在计数器模式下:)

票数 2
EN

Stack Overflow用户

发布于 2010-12-10 06:54:21

使用公钥加密算法,例如RSA。强大,几乎不可破解,易于使用和理解。在Java中甚至可能有一个用于RSA或类似加密的方法或类。

票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4403793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档