【发布时间】:2014-07-18 10:09:53
【问题描述】:
我目前正在用 C 语言编写一个邮件客户端。但是我有一个关于存储密码的问题。
我只想在程序运行时存储它。 由于密码是一个“字符串”,我可以将其存储在一个 char 数组中,该数组在程序结束前不久被覆盖。但这会相对不安全。
如何在程序运行期间安全地存储密码?
【问题讨论】:
标签: c email client password-protection password-encryption
我目前正在用 C 语言编写一个邮件客户端。但是我有一个关于存储密码的问题。
我只想在程序运行时存储它。 由于密码是一个“字符串”,我可以将其存储在一个 char 数组中,该数组在程序结束前不久被覆盖。但这会相对不安全。
如何在程序运行期间安全地存储密码?
【问题讨论】:
标签: c email client password-protection password-encryption
避免以明文形式保存密码是完全正确的。
如果您有保留密码(例如,您需要定期将密码发送到服务器),最好以加密形式保存。哪种加密形式取决于您。这使得对程序进行内存分析的人更难看到密码。 (更难,并非不可能;如果您必须将密码发送到服务器,并且有人可以物理访问机器来进行内存分析,那么您所能做的就是让它变得困难。)
使用它时,你会这样做:
如果你想真的偏执,在覆盖数组时,依次执行几项,例如(这只是一个例子):
...显然,某些研究人员有时能够通过对 RAM 中的存储单元进行取证分析来检索先前数据的回声。但我认为这属于偏执狂的范畴。 (但这样做很便宜。;-))
【讨论】: