我有一个ASP.Net C#应用程序需要每5分钟使用WebServices连接到外部API。是存储和更新外部API密码的最佳实践
外部web服务的要求如下:
- 用户名和密码被要求
- 我必须传输与每个web服务请求
- 密码的用户名和密码过期每90天,并且必须是在过期日期之前更改
- 密码不能手动更改(由人工),我的应用程序必须连接到单独的密码更改Web服务才能更改密码。
- 我的应用程序必须根据一组规则生成每个新密码。
- 密码永远不能重复使用。
- SSL,证书和防火墙的IP限制是必需的
我已经建立了所有以前的,但我现在有一个问题。存储当前密码和历史密码的最佳做法是什么?
明显存储明文密码是一个不好的解决方案。我需要能够让我的web服务读取密码并在每个请求中传输它。我还需要能够访问所有的历史密码,以确保我新生成的密码不重复。
理想情况下,我想将每个(加密的)密码存储在我的数据库中,并在需要调用web服务时解密它。我应该遵循最佳做法吗?我应该使用Microsoft.Practices.EnterpriseLibrary.Security.Cryptography.Cryptographer.EncryptSymmetric(..)来加密每个密码吗?
注意:不幸的是,我无法改变外部API的功能。我必须遵守所提供的规则。
棒在密码的最后一个5位计数器,与数个月以来2010年? –