关于加密和解密字符串,这里有很多讨论,但是它们都已经存在了很长时间,并且在过去几年中发生了很多变化。
对于用户密码,我使用散列法,因此无法解密密码。
但是,我在后端连接了一些服务,需要对数据库中的密码进行加密,以便可以将其解密以便以后运行。
过去,我使用过DPAPI。这仍然是在数据库中存储此信息的“最佳”方法吗?
答案 0 :(得分:4)
最好的方法是“不要这样做”。如果您保留凭据,则最终有人会窃取它们。
大多数后端都有某种方式授予您可以使用的某种授权令牌,因此您无需继续发送登录名/密码。
有许多“较新的”方式来存储凭据,例如密码库,安全存储以及各种类型的基于硬件的安全存储,但是如果您的程序可以将它们提取为纯文本,那么攻击者也可以。
签入Kerberos身份验证它使用票证和加密的相互身份验证,使设备彼此信任,而无需交换或存储纯文本凭据。
如果您使用的是Windows,请查看通常使用Kerberos的“集成身份验证”。