首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C語言實現強密碼生成器:包含大小寫、數字、特殊字符並打亂順序

     編輯:關於C語言

C語言實現強密碼生成器:包含大小寫、數字、特殊字符並打亂順序

字符集定義

const char lower[]   = "abcdefghijkmnpqrstuvwxyz";  // 去除 l,o
const char upper[]   = "ABCDEFGHJKLMNPQRSTUVWXYZ";  // 去除 I,O
const char number[]  = "23456789";                   // 去除 1,0
const char special[] = "!@#$%^&*()-=_+[]{};:'\"<>,.?/";

生成算法 mkpass

  1. 密碼長度 17,四類字符各佔 len/4=4 位,剩餘 1 位補特殊字符。
  2. 依次從四字符集隨機選取填入 pass[0..16]。
  3. Fisher-Yates 洗牌:for(i=0;i<32;i++) swap(pass[i%17], pass[rand()%17])。
  4. 添加結束符 pass[17]='\0'。

主程序

srand(time(0));
for (int i=0; i<16; i++) { mkpass(buf); printf("%s\n", buf); }

生成 16 個強密碼,均含四類字符且順序隨機,避免視覺混淆字符(l/1, O/0)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved