如何生成密钥来解密使用使用此代码生成的密钥加密的文件?

How can I generate my key to decrypt files that I encrypted with a key that I generated with this code?

提问人:John Italo Cerna Ramos 提问时间:10/18/2023 更新时间:10/18/2023 访问量:63

问:

public static byte[] generateKey(String password) throws Exception
    {
        byte[] keyStart = password.getBytes("UTF-8");

        KeyGenerator kgen = KeyGenerator.getInstance("AES");
        SecureRandom sr = SecureRandom.getInstance("SHA1PRNG", "Crypto");
        sr.setSeed(keyStart);
        kgen.init(128, sr);
        SecretKey skey = kgen.generateKey();
        return skey.getEncoded();
    }

在 Android 5.1 上它运行良好,我想恢复我的文件,如何在 Android 11 上解密它们?

java android 加密 SHA1

评论

1赞 Topaco 10/18/2023
这可能是不可能的。无法保证 SHA1PRNG 的实现在各个平台甚至版本之间是相同的。对于密钥派生,应使用密钥派生函数,如 PBKDF2 或更现代的 Argon2,但不应使用 SecureRandom/SHA1PRNG,请参阅此处

答: 暂无答案