我使用crypt()加密我的项目的密码。用户选择密码后,将按以下方式进行加密:
password = crypt(<password chosen>, <user's account name>)
Run Code Online (Sandbox Code Playgroud)
问题是用户使用密码登录时。如果输入的内容与密码不匹配,请检查以下内容:
if (strcmp(crypt(<what user types in as password>, <user's account name>), <user's encrypted password>)) {
//...
}
Run Code Online (Sandbox Code Playgroud)
在某种情况下它不是。假设他们的密码是“ asdf”。如果他们输入带有任何随机结尾字符的“ asdf”,例如“ asdffffff”或“ asdf339sfd”,则该密码仍会接受。似乎忽略了“ asdf”之后的所有内容。
这是隐窝的已知问题吗?还有另一种加密密码的方法吗?