密碼檢測程式究竟有何奧秘???
你好! 這里是最菜程式員小唐同學的第一篇博客,聊一聊網路空間安全炙手可熱的今天,我們在各大網站與app中完成的密碼注冊是怎么碼出來的~

問題列舉
利用C programming language設計一個密碼檢測程式,密碼需要滿足以下條件:
- 密碼長度6~8個字符
- 兩次輸入的密碼必須一致
- 必須包含大寫字母、小寫字母和數字符號,也只能包含這三種符號
- 不能出現回文(即正讀和反讀都一樣,例如Ab1221bA)
- 程式運行時,提示用戶輸入密碼,如果不符合以上任一要求,顯示相關錯誤并要求用戶重新輸入
源代碼
#include<stdio.h>
#include<string.h>
#pragma warning(disable:4996)
int check1(char pass1[])
{
int l = strlen(pass1);
for (int i = 0; i < l / 2; i++)
{
if (pass1[i] != pass1[l - i - 1])
{
return 1;
}
}
return 0;
}
int check2(char pass1[])
{
int l = strlen(pass1),a=0,b=0,c=0;
if (l < 6 || l>8)
{
printf(“密碼必須是6到8位,請重新輸入\n”);
return 1;
}
if (check1(pass1) == 0)
{
printf(“密碼不能出現回文,請重新輸入\n”);
return 2;
}
for (int i = 0; i < l; i++)
{
if (pass1[i] >= ‘a’ && pass1[i] <= ‘z’)
{
a = 1;
continue;
}
if (pass1[i] >= ‘A’ && pass1[i] <= ‘Z’)
{
b = 1;
continue;
}
if (pass1[i] >= ‘0’ && pass1[i] <= ‘9’)
{
c = 1;
continue;
}
printf("%c字符不屬于大寫字母、小寫字母或數字符號,請重新輸入密碼\n", pass1[i]);
return 3;
}
if (a && b && c)
{
printf(“請再次確認密碼:\n”);
return 0;
}
else
{
printf(“必須包含大寫字母、小寫字母和數字符號,請重新輸入密碼\n”);
return 4;
}
}
int main()
{
char pass1[10],pass2[10];
printf(“請輸入密碼:\n”);
while (1)
{
scanf("%s", pass1);
if (check2(pass1) == 0)
break;
}
while (1)
{
scanf("%s", pass2);
if (strcmp(pass1, pass2) == 0)
break;
else
{
printf(“您第二次輸入的密碼與第一次不同不同,請重新輸入:\n”);
}
}
printf(“您已注冊成功!”);
return 0;
}

程式運行

鳴謝!
碼齡一周,有不足之處敬請海涵并批評指正!

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/238496.html
標籤:其他
上一篇:Django學習之用Django實作前后端分離開發。
下一篇:8.0.22Mysql的詳細安裝
