gpt4 book ai didi

android - 以编程方式检查共享首选项 key 是否已加密

转载 作者:搜寻专家 更新时间:2023-11-01 09:25:35 25 4
gpt4 key购买 nike

是否可以通过编程方式检查存储在共享首选项中的 key 是否已加密?

用例:

我有一个 onSharedPreferenceChanged 监听器,它监听共享首选项的更改。如果有任何变化,它会尝试解密在回调中收到的共享首选项 key 。

由于共享首选项文件具有加密和解密 key ,我不想对收到的每个 key 都运行解密。而是检查以验证收到的 key 是否真的加密,如果是,则运行解密并继续进行。

示例代码 fragment :

listener = new OnSharedPreferenceChangeListener() {

@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
//Code to decrypt "key"
}
};

我想知道,有没有办法检查以验证回调中收到的共享偏好 key 是否已加密?

附言我是 android 开发的新手,问题可能看起来有点天真,但非常感谢任何帮助。

最佳答案

任何体面的现代加密算法都具有其生成的密文与随机噪声无法区分的特性。这直观地意味着给定密文,除了密文,我们无法推断出我们拥有的数据实际上是密文还是只是任意随机字节或我们无法在语义上理解的其他编码.

您只需在您生成的任何密文的开头包含一个可预测的序列,即可轻松避免此问题。然后,您可以在必要时检查此序列。

我还会注意到您的加密代码非常不安全。它使用 ECB 模式并且未经过身份验证。在适当的情况下,检索明文将非常容易。您需要进一步研究对称加密的最佳实践。

此外,在您的评论中,您说编码为 UTF-8。您实际上是从 UTF-8 解码。 UTF-8是一种字符编码。

关于android - 以编程方式检查共享首选项 key 是否已加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50942679/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com