PlayStore 报告了 Unsafe Cryptographic Encryption Error 但我必须使用静态密钥、iv 和 salt

Posted

技术标签:

【中文标题】PlayStore 报告了 Unsafe Cryptographic Encryption Error 但我必须使用静态密钥、iv 和 salt【英文标题】:PlayStore reported Unsafe Cryptographic Encryption Error but i have to use static key, iv and salt 【发布时间】:2022-01-02 19:13:00 【问题描述】:

PlayStore 报告了不安全的加密加密错误,因为我使用的是静态密钥、iv 和 salt。但是我必须使用静态密钥,iv和salt,因为加密结果在其他平台上应该是相同的。

我正在 Google 中寻找解决方案,但似乎没有针对这种情况的任何解决方案。请帮帮我。

【问题讨论】:

你能把整个错误贴在这里吗?另外,您使用什么进行加密,请提供更多详细信息。 【参考方案1】:

我用 XML 文件解决了这个问题。 在使用 Base64 编码后,我存储了加密密钥、salt 和 iv。

res/raw/config.properties

secret_key=VGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIDEzIGxhenkgZG9ncy4=
salt=PYSiYA==
iv=AAAAAAAAAAAAAAAAAAAAAA==

java代码

private String getConfigValue(Context context, String name) 
        Resources resources = context.getResources();

        try 
            InputStream rawResource = resources.openRawResource(R.raw.config);
            Properties properties = new Properties();
            properties.load(rawResource);
            return properties.getProperty(name);
         catch (Resources.NotFoundException e) 
            e.printStackTrace();
         catch (IOException e) 
            e.printStackTrace();
        

        return null;
    

Base64.decode(getConfigValue(context, "secret_key"), Base64.DEFAULT));
Base64.decode(getConfigValue(context, "salt"), Base64.DEFAULT));
Base64.decode(getConfigValue(context, "iv"), Base64.DEFAULT));

【讨论】:

以上是关于PlayStore 报告了 Unsafe Cryptographic Encryption Error 但我必须使用静态密钥、iv 和 salt的主要内容,如果未能解决你的问题,请参考以下文章

如何修复 no-unsafe-any 规则?

如何将mapping.txt上传到PlayStore

底层编程(unsafe包)

在某些设备上从 PlayStore 下载后,Android App Bundle 崩溃

问题:java.lang.NoSuchMethodError:Google Playstore中没有静态方法printStackTrace(Ljava / lang / Throwable;)(示例代

web3.eth.accounts.decrypt 在 cryp.createDecipheriv 抛出错误