您的位置:首页 > 编程语言 > C语言/C++

C语言实现密码的设置及验证

2015-11-21 20:53 435 查看
#include <stdio.h>

/*定义密码输入函数*/
void password_set(unsigned int *passwordArrary)
{
int enter_counter; /*定义密码输入计数器*/

/*for循环实现密码的输入*/
printf("请输入6位数字密码\n");
for (enter_counter = 0; enter_counter < 6; enter_counter++)
{
scanf_s("%d", &passwordArrary[enter_counter]);
}
}

/*定义check_rule函数检查输入密码是否符合密码设置规则*/
int check_rule(unsigned int *passwordArrary)
{
int checkRule_flag;
int checkRule_counter;

checkRule_flag = 0;

for (checkRule_counter = 1; checkRule_counter <= 6; checkRule_counter++)
{
if ((*passwordArrary) > 0 && (*passwordArrary) < 10)
{
checkRule_flag++;
passwordArrary++;
}
else
{
passwordArrary++;
}
}

if (checkRule_flag == 6)
{
return 1;
}
else
{
return 0;
}
}

/*定义一个密码校验函数*/
int password_value_check(unsigned int *passwordArrary)
{
unsigned int password_check[6]; /*存放再次输入的密码值*/
int passwordCheckEnter_counter; /*循环输入密码*/
int passwordCheck_counter; /*校验次数计数器*/
int passwordCheck_flag; /*校验标志位*/

passwordCheck_counter = 0;
passwordCheck_flag = 0;

/*再次输入密码并存如校对数组*/
printf("请再次输入刚才设置的密码以便进行校验!\n");
for (passwordCheckEnter_counter = 0; passwordCheckEnter_counter < 6; passwordCheckEnter_counter++)
{
scanf_s("%d", &password_check[passwordCheckEnter_counter]);
}

while (passwordCheck_counter < 6)
{
if ((*passwordArrary) == password_check[passwordCheck_counter]) /*判断两次密码是否相同*/
{
passwordCheck_flag++;
passwordArrary++;
passwordCheck_counter++;
}
else
{
passwordArrary++;
passwordCheck_counter++;
}
}

if (passwordCheck_flag == 6) /*判断标志位返回相应值*/
{
return 1;
}
else
{
return 0;
}
}

int main()
{
unsigned int passwordArrary[6]; /*定义一个存放密码的数组*/
unsigned int *password_set_return;
int check_rule_flag; /*定义密码规则检查返回标识位*/
int check_value_flag; /*设定密码校验标志位*/
int set_counter; /*定义密码设置计数器*/
int check_counter; /*定义密码校验计数器*/

set_counter = 1;
check_counter = 1;

password_set(passwordArrary);

/*利用check_rule函数检查输入的函数是否符合密码设置规则*/
check_rule_flag = check_rule(passwordArrary);
while (check_rule_flag == 0 && set_counter <= 5)
{
set_counter++;
printf("您输入的密码不符合规格,请重新输入6位0~9之间的密码\n");
password_set(passwordArrary);
check_rule_flag = check_rule(passwordArrary);
}
if (set_counter > 5)
{
printf("密码设置已经超过规定次数!\n");
}
else
{
check_value_flag = password_value_check(passwordArrary);
while (check_value_flag == 0 && check_counter <= 5)
{
check_counter++;
check_value_flag = password_value_check(passwordArrary);
}
if (check_counter > 5)
{
printf("输入错误次数超过5次,登陆失败!\n");
}
else
{
printf("密码校验成功!\n");
}
}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: