【问题标题】:String Encryption using a key使用密钥进行字符串加密
【发布时间】:2023-04-04 08:58:01
【问题描述】:

我正在寻找一种方法来安全地加密我的源代码中使用的任何凭据,例如用于连接第三方 API 的凭据

我有一个关于加密字符串或文件的问题...

获取以下 GitHub 项目:https://github.com/2Toad/Rijndael256/blob/master/README.md

我了解加密/解密方法,但让我感到困惑的部分是使用硬编码的密码进行加密,当然如果有人可以访问您的源代码,他们无论如何都可以解密它。

您将如何确保用于加密的密码也是安全的?

【问题讨论】:

  • 密码是用户提供的,为什么源码会有密码?
  • 抱歉我没说清楚我会编辑问题,我已经编辑了问题
  • 好吧,问题仍然存在。为什么要在源代码中存储密码?密码应在配置中,敏感数据不应提交到源代码管理
  • 谢谢您,您是否会尽可能加密配置文件的各个部分,或者只是将凭据存储在配置文件中并从源代码控制中忽略,这似乎也是一个愚蠢的问题,但确实如此。 NET 内置了阻止任何人访问配置文件的功能?
  • 这个问题被问了很多,答案很简单:执行代码在某些时候需要解密数据,所以黑客总是能够得到它。您的数据与访问您的 PC 一样安全。

标签: c# asp.net-mvc security encryption


【解决方案1】:

当然,密码通常是从用户那里获取的。计算机对密码没有任何用处;相反,它可以简单地直接记住一个键;然而,人类在记住 128 位(32 个十六进制字符)或更多时非常糟糕。

计算机检索密钥的方法有很多种;有密钥协议、密钥存储、密钥包装、密钥派生、硬件存储等。密钥的整个处理是书籍的主题,称为密钥管理

有时在代码/运行时内存中有键确实有意义。如果运行时对于用户而言比进程本身更不易访问,那么它可以提供少量保护。配置文件也是如此,尽管用户通常都可以阅读。

【讨论】:

  • 不客气。请注意,应在 security.stackexchange 上询问有关密钥管理的一般问题,而不是在 SO 上。在 crypto.stackexchange 网站上欢迎有关其背后的加密的一般问题。
猜你喜欢
  • 2015-01-25
  • 1970-01-01
  • 2010-11-22
  • 1970-01-01
  • 1970-01-01
  • 2012-10-25
  • 2015-07-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多