是否有任何算法可以在android中生成加密密钥来保护数据库?

我尝试了以下PBE算法:

PBEKeySpec pbeKeySpec = new PBEKeySpec(password.toCharArray(), salt,
    NUM_OF_ITERATIONS, KEY_SIZE);
SecretKeyFactory factoryKey = SecretKeyFactory.getInstance(PBE_ALGORITHM);
SecretKey tempKey = factoryKey.generateSecret(pbeKeySpec);
SecretKey secretKey = new SecretKeySpec(tempKey.getEncoded(), "AES");

但是它每次都会生成相同的密钥。还有其他用于生成安全密钥的好的算法吗?

最佳答案

要生成随机密钥,请使用KeyGenerator类,其代码如下所示:

KeyGenerator kgen = KeyGenerator.getInstance("AES");
kgen.init(KEY_SIZE);
SecretKey skey = kgen.generateKey();

请注意,如果您以后希望解密数据库,显然必须将密钥安全地存储在某个地方,因此,追求您提出的基于PBE的解决方案可能是值得的。

10-06 15:32