随机生成密码

来源:互联网 发布:海康网络键盘怎么设置 编辑:程序博客网 时间:2024/06/06 06:57

// 随机生成密码

CString MadeRandPwd(){int nI = 3;  // 密码中数字占三位int nJ = 3;  // 密码中字母占两位int nK = 2;  // 密码中特殊字符占两位int nLen = nI+nJ+nK;char aPwd[21] = {0};  // 注意本函数密码最长20位char aChar[] = {'~', '!', '#', '$' , '%','^', '&', '*', '(', ')','-', '+', '_', '+', '{','}', '[', '}', '\\', '|',';', '"', ':', '\'', ',','.', '\/','<', '>', '?'};int nCharLen = sizeof(aChar)/sizeof(aChar[0]);srand((unsigned int)time(NULL));while (1){int i = rand()%nLen;if (0==aPwd[i]){if (nI>0){aPwd[i] = rand()%10 + '0';nI--;}else if (nJ>0){aPwd[i] = rand()%26 + 'A' + ('a'-'A') * (rand()%2);nJ--;}else if (nK>0){aPwd[i] = aChar[rand()%nCharLen];nK--;}if (0 == nI+nJ+nK){break;}}}CString strPwd(aPwd);return strPwd;}