-1

这让我困惑了一会儿。我对加密没有广泛的理解,但我理解这个原则。
为了举例,我们假设我有一个程序,其唯一目的是将随机用户的输入发布到我的私人Facebook个人资料。现在要做到这一点,该程序必须有我的登录信息到Facebook(如果情况并非如此,假设另一个第三方应用程序)。这些信息或证书必须存储在某个地方,因为该程序的post方法将在没有管理的情况下完成。为什么认为加密更安全?

我知道这是一个糟糕的政策,因为编译的代码可以被反编译并且我的凭据可读,所以将登录凭证作为普通字符串存储在代码中。推荐的解决方案是将它们存储在单独的文件中,并进行加密。

据我所知,加密/解密需要一个密钥,也需要存储在某个地方。无法从反编译的代码中读取此密钥和加密算法并用于解密凭证?

存储基于反编译 - 解密额外步骤加密的凭证的好处,还是我彻底误解了某些内容?

+2

我认为这个问题是更适合http://security.stackexchange.com – beatcracker

+1

有战略,使之不平凡的获得到井存储的密钥访问([在哪里存储用于加密的密钥] (http://security.stackexchange.com/questions/12332/where-to-store-a-key-for-encryption))。 –

+0

@beatcracker谢谢,我也会在那里尝试,但是我会在这里打开它,因为我觉得这与我自己的编程密切相关。 – Sami

回答

0

有2种方式人们可以检查提供的凭证时,你已经加密的版本:

  1. 解密加密的版本;这显然需要存储解密所必需的工具,这是不安全的。
  2. 加密您正在尝试检查的内容,并查看它是否与您的加密版本匹配。这是否不是需要解密任何东西的能力。
+0

第2步是我的问题中常见的误解。没有什么可比较的。没有人提供凭证输入。用户只需输入“Hello world!”,然后程序将其发送到服务,无论是Facebook还是其他。证书必须存储并打开,以便程序可以在不管理的情况下使用它们。 – Sami

+0

那么也许你应该编辑你的问题,不是吗? –

+0

我认为这很明显,如果你看到这个问题.. – Sami

相关问题