什么时候解密?

问题描述:

这不是一个关于如何解释或为什么解密的问题,但正如标题所说的那样?例如,如果我们有一个登录服务器和一个带有加密密码的数据库(在我的情况下是DES,RSA和AES的组合),并且在登录时用户密码被加密后发送到服务器 - 有没有需要解密?什么时候解密?

假设他们使用相同的方法,可以将加密密码与已存储在dababase中的加密密码进行比较吗?

+0

如果您使用* DES,RSA和AES *来确保密码从客户端传输到服务器,为什么不使用TLS?如果您使用* DES,RSA和AES *在服务器上存储密码,请不要!使用[Argon2,scrypt或PBKDF2](http://security.stackexchange.com/q/211/45523)。 –

有没有什么需要解密的?

对于一个典型的系统,用户只需以自己的身份登录,例如,很少有有效的例子,系统所有者需要知道用户的密码。有时,管理用户可以以其他用户的身份登录以查看他们看到的内容,但即使如此,密码本身也不是必需的信息。

假设他们使用相同的方法,可以将加密密码与已存储在数据库中的加密密码进行比较吗?

是的,这正是login process正确的工作方式。单向散列用于第一次存储密码。未来的密码尝试通过相同的哈希算法运行,得到相同的结果。如果哈希结果相同,则输入正确的密码。

+0

谢谢马特!为我清理了很多,我正在研究的项目详细介绍了加密和解密,所以我试图在没有必要的时候想办法强制解密。 – MBP

+0

值得注意的是,正确的登录系统不会*加密*密码,而是*散列*它。 @MattS简要回答了这个问题,但了解其差异是非常重要的。 –