我從用戶讀取第一個密碼並對其進行加密。然後我讀取第二個密碼並加密。然後我比較了兩個加密的密碼,但比較始終表明它們是相同的。我將問題縮小到這個範圍:在第二次加密之後,password
和guess
變量具有相同的值。這是一個奇怪的錯誤;任何人都可以提供見解和/或修復?在C中使用crypt的簡單密碼比較
預先感謝您。的代碼:
int main(void)
{
char salt[] = "00";
char *password;
char *guess;
password = crypt(getpass("Enter Password1:"), salt);
printf("password = %s\n", password);
guess = crypt(getpass("Enter Password2:"), salt);
printf("password = %s\n", password);
printf("guess = %s\n", guess);
puts(strcmp(guess, password) == 0
? "Access Granted." : "Access Denied.");
return 0;
}
輸出:
Enter Password1:
password = 007XN7q4UF/o6
Enter Password2:
password = 00MqrTyK65aEA
guess = 00MqrTyK65aEA
Access Granted.
謝謝!這解決了它。我以爲我排除了getpass()作爲罪魁禍首,但當時肯定有一個額外的錯誤。 – Noah