0
|
lucas.mdo · 技术社区 · 6 年前 |
![]() |
1
1
androidkeystore的要点是将敏感的密钥材料从应用程序、操作系统和安全硬件中移出,使其永远不会泄漏或受到危害。因此,根据设计,如果您在androidkeystore中创建了一个密钥,就永远无法取出密钥材料。 在这种情况下,realm db需要密钥材料,所以不能给它androidkeystore密钥。另外,领域需要的是两个AES密钥,而不是一个EC密钥,正如您试图生成的那样。 生成所需关键材料的正确方法是:
只有64个随机字节。但是,您需要将这些字节存储在某个地方。您可以使用androidkeystore创建一个aes密钥并使用它来加密
你需要两个都保存
然而,所有这些都说…我认为你不应该做任何事。我不认为这实际上给了你任何安卓系统默认不会给你的安全。如果攻击者试图转储包含数据库的设备存储,他将一无所获,因为Android会加密所有存储。如果攻击者可以将设备根目录,他可以运行代码作为您的应用程序并使用它进行解密。
如果您在
见
|
![]() |
2
0
据我所知,解决这个问题的通常方法是,生成您自己需要的大小的随机密钥(主密钥),并且这个主密钥可以在密钥存储的帮助下进行加密。
要解密数据:
换句话说,不是存储在密钥存储区内的主密钥,而是可以使用密钥存储区来保护/加密主密钥。 |
![]() |
zoid_ · 如何将列表中的一个项目更改为另一个列表中的另一个项目? 3 年前 |
![]() |
YungOne · 如何将RSA私钥转换为pem 3 年前 |
![]() |
Annie Nguyen · 使用函数对字符串进行加密/解密 3 年前 |
![]() |
Louis · 在Java中存储令牌/密码的最佳实践 3 年前 |
![]() |
beginner_geek07 · 为什么我的输出是“无”? 3 年前 |