我目前正在制作一个应用程序,它需要将敏感数据保存在J2ME中,无论是在RMS中还是使用LWUIT的存储类。(例如用户名和密码)
这样的实现有多安全?要确保数据安全且不易被盗,需要采取哪些步骤?
发布于 2013-04-15 21:22:35
RMS没有加密-攻击者可以很容易地读取任何数据。您需要对数据进行加密-我推荐Java提供程序,但Bouncycastle AES提供程序也可以工作(尽管它的效率不高,您将在其上使用need to enable 256-bit keys )。首先,我不建议在没有询问StackOverflow或其他好的Q&A站点的情况下更改代码中的任何内容(这很容易错误地使用加密库);代码使用See the accepted answer to this question for some example code加密提供程序,以使用Bouncycastle提供程序,在导入BouncyCast库之后使用Cipher.getInstance("AES/CBC/PKCS7Padding", new BouncyCastleProvider())。重要的是要注意的是,代码从char[] password生成一个Keyspec spec -用户将需要在每个会话中至少输入一次此密码,以便您解密数据(您不能将密码存储在设备上,这将违背加密数据的目的)。同样重要的是,您需要在加密和解密阶段使用相同的IV (初始化向量);该IV对于要加密的每个记录都应该是唯一的(例如,当您加密foo.txt时,使用与加密bar.txt时不同的IV ),但它不需要保密(您可以将其以明文形式与加密文件一起存储)。作为额外的预防措施,当您用完char[] password时,请擦除它。
https://stackoverflow.com/questions/16015583
复制相似问题