由于许多API通过用户名/密码组合远程可访问自己的数据,我想知道至极是存储这些值的最佳方式,高度安全的方式(即便100%是不可能的),以便将它们直接连接,而不要求每次对于那些。
Answer 1:
我推荐的三种方法之一:
避免使用身份验证令牌在所有存储的密码。 在这个模型中,在一次用户登录,服务器生成一个唯一的,大的,稀疏的令牌,客户端可以存储并作为其登录使用“密码”。 服务器只接受一个客户端的时间由此看来,所以如果两个客户端尝试同时使用它,令牌无效。 令牌也通常在一段时间(1周,2周,一年,无论是适当)后失效。 当令牌无效,用户必须手动再次登录,并重复上述过程。 这基本上是Gmail和类似的网站登录的方法。
如果您必须存储密码,我建议依靠操作系统来管理它。 Windows和Mac均具有良好的安全存储系统(分别DPAPI和钥匙扣)。 Linux没有一个良好的随时可用的解决方案,虽然如此,它取决于你的市场。 使用OS的优点是OS可以提供保护,你不能轻易提供自己,并且用户可以集中管理操作系统存储的整体保护(使用智能卡等),你不可能重现的水平。 操作系统安全商店还能够为用户通常是相当方便的。
如果这些都不是选项,然后加密的文件存储与一个主密码,用户必须输入每次启动您的应用程序的时间。 这是火狐如何工作的(或至少它没有我最后一次看,它已经有一段时间)。 这是相当安全的,但使用起来很不方便用户(和低便利经常指由用户通过较低,或者通过简单的密码使用不当等)。 我将调查的Firefox代码如何实现这样的一个例子。
Answer 2:
最好的办法是依靠别人来存储它们,并相信,党代替。 但是,如果你必须控制我建议在安全系统读一本好书,然后再思考。 有很多很多的变量来考虑,大部分时间你只是降低风险与费用。
Answer 3:
KeePass的甚至提供了一个API,用于开发。
文章来源: Client Login - how to store credentials securely on client side?