API秘密应该以散列形式存储吗?

时间:2015-02-09 21:08:17

标签: php api security

我想通过一个简单的cron作业自动连接到API。通常API都受API密钥保护,对吧?我正在使用的API要求我发送用于weblogin的用户名和密码。

因此,如果我想为此创建一个脚本,我将需要存储密码。我从不想把它作为纯文本存储。但由于我没有存储“参考”密码而是存储“用户输入”密码,我似乎无法找到实现此目的的方法。

2 个答案:

答案 0 :(得分:0)

在此上下文中存储纯文本密码是可以的 - 您的应用程序需要的服务(即数据库和API)与客户密码之间的区别在于,在后一种情况下,客户随时可以提供密码。是必须的。由于人类在前一种情况下无法做到这一点,因此需要将其存储在磁盘上。

如果对服务密码进行哈希处理,它也无助于安全性。如果散列密码授予系统对数据库的访问权限,那么散列 密码,因此散列增加了零附加保护的复杂性。一旦攻击者找到了一种方法来读/写您的文件系统(例如通过SSH,或在您的磁盘上上传未经授权的脚本),那么您的安全性无论如何都会受到损害。

考虑到所有这些,为什么散列和加密用户密码是个好主意?原因在于,不幸的是,用户经常习惯于在多个服务中重复使用他们的电子邮件/密码对的不良安全习惯。如果发现它(从纯文本,可逆加密或弱哈希),那么它也可能在其他地方危及其安全性。

答案 1 :(得分:0)

不确定您在哪个操作系统上运行,但大多数操作系统都有加密存储数据的功能。

Windows有一个名为Data Protection API的东西。它允许您根据计算机密钥加密和解密数据(用户名和密码)。

如果您在专用帐户下运行服务,则计算机上的其他用户/应用程序无法解密您的数据。