0

我目前正在制作一个需要在 J2ME 中保存敏感数据的应用程序,无论是在 RMS 中还是使用 LWUIT 的存储类。(例如用户名和密码)

这种实施的安全性如何?为了确保数据安全且不易被盗,应采取哪些步骤?

4

1 回答 1

2

RMS 未加密——攻击者可以轻松读取任何数据。您需要加密数据——我推荐Bouncycastle AES 提供程序,但 Java AES 提供程序也可以工作(尽管效率不高,并且您需要在其上启用 256 位密钥)。有关一些示例代码,请参阅此问题的公认答案,我不建议在不先询问 StackOverflow 或其他好的问答网站的情况下更改代码中的任何内容(很容易错误地使用加密库);Cipher.getInstance("AES/CBC/PKCS7Padding", new BouncyCastleProvider())该代码使用 Java 加密提供程序,在您导入 Bouncycastle 库后使用 Bouncycastle 提供程序。需要注意的重要一点是代码Keyspec specchar[] password- 用户需要在每个会话中至少输入一次此密码才能解密数据(您不能将密码存储在设备上,这会破坏加密数据的目的)。同样重要的是,您需要在加密和解密阶段使用相同的 IV(初始化向量);此 IV 对于您正在加密的每条记录应该是唯一的(例如,当您加密 foo.txt 时,使用与加密 bar.txt 时不同的 IV),但它不需要保密(您可以将其存储为明文旁边的加密文件)。作为一项额外的预防措施,char[] password请在完成后擦拭。

于 2013-04-15T13:22:35.450 回答