ユーザーから最初のパスワードを読み取り、暗号化しました。次に、2 つ目のパスワードを読み取り、暗号化しました。次に、2 つの暗号化されたパスワードを比較しましたが、比較すると、常に等しいことが示されます。私は問題をこれに絞り込みました: 2 回目の暗号化の後、変数password
とguess
変数は同じ値になります。これは奇妙なエラーです。誰でも洞察や修正を提供できますか?
前もって感謝します。コード:
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.