【发布时间】:2014-06-05 21:56:50
【问题描述】:
我正在编写一个需要处理重要数据的应用程序。我想知道将这些重要数据以明文形式存储到程序的变量中,还是将数据的加密版本存储到一个变量中并将解密密钥存储到另一个变量中是否更安全。
在我看来,这里的问题是,如果有人以明文形式访问数据或加密数据以及解密密钥,它基本上仍然可以访问数据。
那么,哪一个最安全,为什么?
将解密密钥存储到操作系统内置密钥环中而不是将其存储到变量中更安全?
有没有更安全的方法来做到这一点?
【问题讨论】:
-
在某些时候,为了处理数据,需要明确。那你将如何存储它?否则,如果您不需要使用清晰的数据,那么您可能根本不需要密钥。
-
@deanosaur 是的,在某些时候,无论如何我都需要将它们以清晰的形式呈现,否则它们将毫无用处。顺便说一句,我想让整个过程尽可能安全。
-
那么您想要的是确保将清除的数据和密钥存储在内存中,当您完成后可以擦除这些数据和密钥。例如,在java中,最好使用
char[]而不是String来存储敏感信息,因为char[]可以在使用后被覆盖,而字符串是不可变的。 -
@deanosaur 感谢您的有益建议,我以后肯定需要实现这个(程序是用python编写的)。
-
你想向谁隐藏数据?是否是用户的数据,而您试图保护它不被其他人看到?
标签: security encryption language-agnostic