打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
账号双重认证(密码 验证码)是如何实现的?



#include

#include

#include

#include

#include

#include


char* CreateVarificationCode(char dest[], int len)//生成验证码

{

    int i, isNum, isUpp;

    for(i = 0; i < len;="">

    {

        isNum = rand() % 2;

        if(isNum)

        {

            dest[i] = rand() % 10 + '0';//生成一个随机的数字字符

        }

        else

        {

            isUpp = rand() % 2;//Uppercase 

            if(isUpp)

            {

                dest[i] = rand() % 26 + 'A';//生成随机的大写字母

            }

            else

            {

                dest[i] = rand() % 26 + 'a';//生成随机的小写字母

            }

        }

    }

    dest[i] = '\0';//末尾要添加字符串结束标志'\0'

    return dest;

}


void InputPassword(char *pw)//获取用户输入的密码

{

    char ch;

    while((ch = getch()) != 13)//如果不是回车就一直循环

    {

        *pw++ = ch;//将密码字符保存到数组中

        printf('*');//在屏幕上打印一个星

    }

    *pw = '\0';//末尾要添加字符串结束标志'\0' 

}


int main()

{

    char *password = '1234';//系统密码

    char myPassword[10]; //用户输入的密码

    char varify[10]; //存放系统生成的验证码

    char myVarify[10]; //用户输入的验证码

    char answer = 'y';

    int i;

    srand((unsigned)time(0));

    while('y' == answer)

    {

        system('cls');//清空屏幕

        printf('\n-------------银行登录验证-------------\n');

        printf('请输入密码: ');

        InputPassword(myPassword);

        printf('\n请输入验证码【%s】: ', CreateVarificationCode(varify, 8));

        scanf('%10s', myVarify);//获取用户输入的验证码

        printf('///开始验证');

        for(i = 0; i < 6;="">

        {

            Sleep(500);

            printf('.');

        }

        if(strcmp(myPassword, password))

        {

            printf('\n对不起,你输入的密码错误!\n');

            printf('是否重新输入?(y or n): ');

            while(1 != scanf(' %c', &answer) || (answer != 'y' && answer != 'n'))

            {

                printf('选择错误!请重新输入(y or n): ');

                fflush(stdin);

            }

        }

        else if(strcmp(myVarify, varify))

        {

            printf('\n对不起,你输入的验证码不正确!\n');

            printf('是否重新输入?(y or n): ');

            while(1 != scanf(' %c', &answer) || (answer != 'y' && answer != 'n'))

            {

                printf('选择错误!请重新输入(y or n): ');

                fflush(stdin);

            }

        }

        else

        {

            system('cls');

            printf('\n验证正确!欢迎进入网上银行系统....\n');

            answer = 'n';

        }

    }

    getch();

    return 0;

}




本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
C语言
C语言中memcopy函数功能及用法 .
2005年华为招聘--C语言笔试试题(答案自己写的,仅供参考)
strncpy_s比strncpy更安全
C语言strcat()函数 连接字符串
(11月4日)我的第一个小程序: 猜字游戏(TC2.0, Dev-c++4.9.9.2 编译通过)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服