当前位置: 首页 > 知识库问答 >
问题:

安全保存RSA PublicKey/PrivateKey

乐正心水
2023-03-14

我创建并使用RSA公钥/私钥来加密/解密一些消息,我将它们作为字符串存储到sharedpreferences中,当我需要它们时,我从字符串创建它们。一切工作都很完美,但是将我的私钥作为字符串存储在sharedpreferences中是否安全。带着这个问题:

SharedPreferences模式_Private安全性

我了解到,有人可以访问我的sharedpreferences并可以从字符串生成我的私钥。我可以做什么使我的私钥安全,同时保存在我的电话?

共有1个答案

殷烨
2023-03-14

这完全取决于私钥/公钥对的敏感度。我认为,将它们存储在sharedpreferences中不是一个坏主意。您的密钥对是相对于应用程序目录存储的,并且具有防止外部访问的系统保护。但是,正如“共享”这个词所暗示的,您的密钥对在您的应用程序组件之间共享。因此,如果需要更好的保护,可以考虑将密钥对存储在KeyStore类中。到目前为止,它是密钥对保护的最佳解决方案。它为您提供基于密码的密钥保护。

更新:这里有一篇关于android keystore和keychain用法的很棒的文章。

 类似资料:
  • 我最近一直在寻找一个如何在CentOS 7中安全保存git凭证的解决方案。 我想保存多个git存储库的凭据。 我想出的解决方案是将侏儒密钥环与任何版本的git一起使用。但我遇到了一些问题。我发现很多帖子说这在Redhat 7或Centos 7中不是一个好的解决方案。,它将被弃用。 但这对我不起作用,使用git时出错: 与gnome-keyring-daemon通信时出错 然后我把git升级到最后一

  • 内存安全 Rust推崇安全与速度至上,它没有垃圾回收机制,却成功实现了内存安全 (memory safety)。 所有权 在Rust中,所有权 (ownership) 系统是零成本抽象 (zero-cost abstraction) 的一个主要例子。 对所有权的分析是在编译阶段就完成的,并不带来任何运行时成本 (run-time cost)。 默认情况下,Rust是在栈 (stack) 上分配内存

  • 允许访问简单的加密和解密字符串,以便存储在本地机器上。 进程:主进程 此模块保护磁盘上存储的数据不被其他应用程序或拥有完全磁盘访问权的用户访问。 请注意,在Mac上,需要访问系统Keychain,这些调用可以阻止当前线程来收集用户输入。 如果密码管理工具可用,Linux 亦是如此。 方法 safeStorage 模块包含以下方法: safeStorage.isEncryptionAvailable

  • 我是Android安全方面的新手。我已经使用Androidkeystore保存应用程序机密。为了从Android keystore中获得保存的密钥,我需要在每次别名密钥中传递我在加密时传递过的内容。所以,我的问题是,我还想安全地保存别名密钥。因此,没有一个键通过查看代码看到别名键。请帮帮我。

  • 所以我想知道,如果我将一个UUID作为后修复添加到文件路径(我现在这样做是为了唯一性,),它是否可以作为一种通过模糊来实现安全的方法呢?(这将是非常困难的野蛮猜测,使某种“私人”文件)。 我知道这不是很理想,但至少在Firebase为这种场景实现更好的解决方案之前,这是暂时的事情,并且能够在晚上睡得更好:p 我的想法是设置如下内容: null

  • 默认情况下,Swift 会阻止你代码中发生的不安全行为。比如说,Swift 会保证在使用前就初始化,内存在变量释放后这块内存就不能再访问了,以及数组会检查越界错误。 Swift 还通过要求标记内存位置来确保代码对内存有独占访问权,以确保了同一内存多访问时不会冲突。由于 Swift 自动管理内存,大部份情况下你根本不需要考虑访问内存的事情。总之,了解一下什么情况下会潜在导致冲突是一件很重要的事情,这