提示信息

C语言模拟密码输入(显示星号)

寒光竹影 已关注

以下是使用C语言模拟密码输入并显示星号的示例代码:

  1. #include <stdio.h>
  2. #include <conio.h>
  3. #define MAX_PASSWORD_LENGTH 20
  4. int main() {
  5. char password[MAX_PASSWORD_LENGTH];
  6. int i = 0;
  7. char ch;
  8. printf("Enter password: ");
  9. while (1) {
  10. ch = getch();
  11. if (ch == '\r') // 用户按下回车键
  12. break;
  13. else if (ch == '\b') { // 用户按下退格键
  14. if (i > 0) {
  15. i--;
  16. printf("\b \b"); // 在终端上删除一个字符
  17. }
  18. } else if (i < MAX_PASSWORD_LENGTH - 1) {
  19. password[i] = ch;
  20. i++;
  21. printf("*"); // 在终端上显示星号
  22. }
  23. }
  24. password[i] = '\0'; // 添加字符串终止符
  25. printf("\nEntered password: %s\n", password);
  26. return 0;
  27. }

在这个示例中,我们使用了getch()函数获取用户输入的每个字符。因为这个函数能够读取字符而不显示在终端上,所以用户输入的密码将不会被显示出来。当用户按下回车键时,密码输入结束。

如果用户按下退格键,我们将会删除前一个输入的字符并在终端上显示相应的删除操作。在示例中,我们使用\b字符(退格符)来移动光标到前一个位置,然后打印一个空格来覆盖之前输入的字符,再次使用\b移动光标回到删除后的位置。

注意,这个示例中的密码将以明文形式存储在字符数组中,并没有进行加密。在实际应用中,我们应该使用更安全的方式来存储密码,比如使用哈希函数进行加密。

    遇到难题? "AI大模型GPT4.0、GPT" 是你的私人解答专家! 点击按钮去提问......
寒光竹影 关注 已关注

最近一次登录:2023-10-09 16:46:58   

暂时还没有签名,请关注我或评论我的文章
×
免费图表工具,画流程图、架构图