當前位置:首頁 » 編程語言 » c語言密碼安全菜單
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言密碼安全菜單

發布時間: 2022-05-29 03:50:36

A. c語言密碼程序

用一個文本文件或小資料庫存儲這些東西,比如,XML或SQLIITE等等,也可以用普通文本,存儲進去之後,下次打開輸入的時候,和新存入的密碼進行匹配,如果沒有匹配成功,失敗。另外,為了密碼的安全問題,一般會有一個MD5或者其他SHA演算法進行加密下

B. c語言程序設計 密碼設置程序怎麼編寫

#include <stdio.h>
#include <string.h>
#include <conio.h>

int main(int argc,char *argv[])
{
const char user[]="wangpin";/*用戶名自己可改動*/
const char password[]="wangpin@126";/*密碼自己可改動*/
if(argc == 1)
{
printf("Input error! Usage:filename username password\n");
getch();
exit(1);
}
else if(argc == 3)
{
if (strcmp(argv[1],user) != 0 || strcmp(argv[2],password) != 0)
{
printf("Input error: Invalid username or password\n");
getch();
exit(1);
}
}
printf("Authentication Pass..\n");
sound(500);/*最簡單的音樂聲*/
delay(50000);
nosound();
getch();
return 0;
}

先運行這個程序得到一個exe類型的可執行文件,然後可以復制到c盤根目錄下,用桌面左下的圖標進入:開始-程序-附件-命令提示符
然後鍵入 cd \
到c盤根目錄下輸入
exe文件名 wangpin wangpin@126
就是運行這個程序
------------------------------------------------------------------
------------------------------------------------------------------
下面是一個簡單的音樂程序,你可以把它加到上面代替sound()到nosound()那一部分發出<<東方紅>>音樂歌曲(小心!聲音可能很大)
#include <stdio.h>
#include <stdlib.h>
#include <dos.h>

int main(void)
{
int i,j;
int fr[]={392,392,440,294,262,262,220,294,392,392,
440,532,440,392,262,262,220,294,392,294,
262,247,220,196,392,294,330,294,262,262,
220,294,330,294,262,294,262,247,220,196};
int tim[]={4,2,2,8,4,2,2,8,4,4,2,2,2,2,4,2,2,8,4,
4,4,2,2,4,4,4,2,2,4,2,2,2,2,2,2,2,2,2,2,12};
for(i=0;i<40;i++)
{
sound(fr[i]);
delay(tim[i]*100000000);
nosound();
}
system("pause");
return 0;
}

C. c語言實現密碼加密

unsignedchar*encrypt(unsignedchar*psw,intenc){
intsum=0,i;
if(enc){
for(i=0;i<6;i++){
psw[i]-=15;
sum+=psw[i];
}
psw[6]=(unsignedchar)sum;
psw[7]=0;
}
else{
for(i=0;i<6;i++){
sum+=psw[i];
psw[i]+=15;
}
if((unsignedchar)sum!=psw[6]){
printf("Badpassword ");
psw[0]=0;
returnpsw;
}
else{
psw[6]=0;
}
}
for(i=0;i<3;i++){
unsignedchart=psw[i];
psw[i]=psw[5-i];
psw[5-i]=t;
}
returnpsw;
}

intmain()
{
unsignedcharpsw[128];
scanf("%s",psw);
printf("encodeto:%s ",encrypt(psw,1));
printf("decodeto:%s ",encrypt(psw,0));
return0;
}

D. 將凱撒密碼X的加密、解密過程用C語言編程實現

1、在密碼學中,愷撒密碼(或稱愷撒加密、愷撒變換、變換加密)是一種最簡單且最廣為人知的加密技術。它是一種替換加密的技術,明文中的所有字母都在字母表上向後(或向前)按照一個固定數目進行偏移後被替換成密文。例如,當偏移量是3的時候,所有的字母A將被替換成D,B變成E,以此類推。這個加密方法是以愷撒的名字命名的,當年愷撒曾用此方法與其將軍們進行聯系。愷撒密碼通常被作為其他更復雜的加密方法中的一個步驟,例如維吉尼爾密碼。愷撒密碼還在現代的ROT13系統中被應用。但是和所有的利用字母表進行替換的加密技術一樣,愷撒密碼非常容易被破解,而且在實際應用中也無法保證通信安全。例子愷撒密碼的替換方法是通過排列明文和密文字母表,密文字母表示通過將明文字母表向左或向右移動一個固定數目的位置。

2、kaiser加密演算法具體程序:

#include<stdio.h>
#include<conio.h>
charencrypt(charch,intn)/*加密函數,把字元向右循環移位n*/
{
while(ch>='A'&&ch<='Z')
{
return('A'+(ch-'A'+n)%26);
}
while(ch>='a'&&ch<='z')
{
return('a'+(ch-'a'+n)%26);
}
returnch;
}
voidmenu()/*菜單,1.加密,2.解密,3.暴力破解,密碼只能是數字*/
{
clrscr();
printf(" =========================================================");
printf(" 1.Encryptthefile");
printf(" 2.Decryptthefile");
printf(" 3.Forcedecryptfile");
printf(" 4.Quit ");
printf("========================================================= ");
printf("Pleaseselectaitem:");
return;
}
main()
{
inti,n;
charch0,ch1;
FILE*in,*out;
charinfile[20],outfile[20];
textbackground(BLACK);
textcolor(LIGHTGREEN);
clrscr();
sleep(3);/*等待3秒*/
menu();
ch0=getch();
while(ch0!='4')
{
if(ch0=='1')
{
clrscr();
printf(" Pleaseinputtheinfile:");
scanf("%s",infile);/*輸入需要加密的文件名*/
if((in=fopen(infile,"r"))==NULL)
{
printf("Cannotopentheinfile! ");
printf("Pressanykeytoexit! ");
getch();
exit(0);
}
printf("Pleaseinputthekey:");
scanf("%d",&n);/*輸入加密密碼*/
printf("Pleaseinputtheoutfile:");
scanf("%s",outfile);/*輸入加密後文件的文件名*/
if((out=fopen(outfile,"w"))==NULL)
{
printf("Cannotopentheoutfile! ");
printf("Pressanykeytoexit! ");
fclose(in);
getch();
exit(0);
}
while(!feof(in))/*加密*/
{
fputc(encrypt(fgetc(in),n),out);
}
printf(" Encryptisover! ");
fclose(in);
fclose(out);
sleep(1);
}
if(ch0=='2')
{
clrscr();
printf(" Pleaseinputtheinfile:");
scanf("%s",infile);/*輸入需要解密的文件名*/
if((in=fopen(infile,"r"))==NULL)
{
printf("Cannotopentheinfile! ");
printf("Pressanykeytoexit! ");
getch();
exit(0);
}
printf("Pleaseinputthekey:");
scanf("%d",&n);/*輸入解密密碼(可以為加密時候的密碼)*/
n=26-n;
printf("Pleaseinputtheoutfile:");
scanf("%s",outfile);/*輸入解密後文件的文件名*/
if((out=fopen(outfile,"w"))==NULL)
{
printf("Cannotopentheoutfile! ");
printf("Pressanykeytoexit! ");
fclose(in);
getch();
exit(0);
}
while(!feof(in))
{
fputc(encrypt(fgetc(in),n),out);
}
printf(" Decryptisover! ");
fclose(in);
fclose(out);
sleep(1);
}
if(ch0=='3')
{
clrscr();
printf(" Pleaseinputtheinfile:");
scanf("%s",infile);/*輸入需要解密的文件名*/
if((in=fopen(infile,"r"))==NULL)
{
printf("Cannotopentheinfile! ");
printf("Pressanykeytoexit! ");
getch();
exit(0);
}
printf("Pleaseinputtheoutfile:");
scanf("%s",outfile);/*輸入解密後文件的文件名*/
if((out=fopen(outfile,"w"))==NULL)
{
printf("Cannotopentheoutfile! ");
printf("Pressanykeytoexit! ");
fclose(in);
getch();
exit(0);
}
for(i=1;i<=25;i++)/*暴力破解過程,在察看信息正確後,可以按'Q'或者'q'退出*/
{
rewind(in);
rewind(out);
clrscr();
printf("========================================================== ");
printf("Theoutfileis: ");
printf("========================================================== ");
while(!feof(in))
{
ch1=encrypt(fgetc(in),26-i);
putch(ch1);
fputc(ch1,out);
}
printf(" ======================================================== ");
printf("Thecurrentkeyis:%d ",i);/*顯示當前破解所用密碼*/
printf("Press'Q'toquitandotherkeytocontinue...... ");
printf("========================================================== ");
ch1=getch();
if(ch1=='q'||ch1=='Q')/*按'Q'或者'q'時退出*/
{
clrscr();
printf(" GoodBye! ");
fclose(in);
fclose(out);
sleep(3);
exit(0);
}
}
printf(" Forcedecryptisover! ");
fclose(in);
fclose(out);
sleep(1);
}
menu();
ch0=getch();
}
clrscr();
printf(" GoodBye! ");
sleep(3);
}

E. C語言 密碼設置

WINDOWS操作系統:

//---------------------------------------------------------------------------

#include <stdio.h>
#include <conio.h>

int main(void)
{
char c;
while ((c=getch())!='q')
putchar('*');
return 0;
}
//---------------------------------------------------------------------------

LINUX操作系統:

//---------------------------------------------------------------------------

#include <curses.h>

int main(void)
{
initscr();

cbreak();
noecho();
while (getch()!='q') addch('*');
echo();
nocbreak;

endwin();
return 0;
}

/*編譯時要加上 -lcurses 參數*/
//---------------------------------------------------------------------------

F. C語言 問題 E: 安全的密碼

#include <stdio.h>

#include <string.h>

#include <ctype.h>


int main() {

int M, U, L, D, S;

char code[51];

char ch[] = "~!@#$%^";

scanf("%d", &M);

getchar();

while (M--) {

U = L = D = S = 0;

scanf("%s", code);

int len = strlen(code);

if (len < 8 || len > 16) {

printf("NO ");

continue;

}

int i = 0;

while (code[i] != '') {


if (isupper(code[i])) U++;

else if (islower(code[i])) L++;

else if (isdigit(code[i])) D++;

else {

int pos = strchr(ch, code[i]) - ch;

if (pos >= 0 && pos <= 7)

S++;

}

i++;

}

if (((U >= 1) + (L >= 1) + (D >= 1) + (S >= 1)) >= 3)

printf("YES ");

else

printf("NO ");

}

return 0;

}

G. C語言中,如何進行口令檢查,後顯示菜單

大概類似於(假定你的密碼是123456)
char pwd[50];
printf("請輸入密碼:");
gets(pwd);
while(strcmp (pwd,"123456") != 0 )

{
printf("密碼錯誤,請重新輸入密碼:");
gets(pwd);

}
//顯示你的菜單

H. C語言 安全的密碼 問題

寫了個命令行版本的, 使用的時候, 直接把密碼當成命令行參數使用吧,

如果不合心意, 可以自己改改(對於第4類字元, 沒有考慮符號表)

/*
@20140129
for

by'熱心網友'
*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#definePASS_SAFE_NONE0
#definePASS_SAFE_LOW1
#definePASS_SAFE_MED2
#definePASS_SAFE_HIG3


intchkpasswd(char*pass);
intoutput(intsafecode);

intmain(intargc,char**argv){
if(argc!=2){
printf("UsageError ");
exit(1);
}
intret=chkpasswd(argv[1]);
output(ret);
}

intoutput(intcode){
printf("code=%d ",code);
switch(code){
casePASS_SAFE_NONE:
casePASS_SAFE_LOW:
printf("NotSafe ");
break;
casePASS_SAFE_MED:
printf("MediumSafe ");
break;
casePASS_SAFE_HIG:
printf("Safe ");
break;
}
returncode;
}

intchkpasswd(char*pass){
intlen=strlen(pass);
if(len<6)returnPASS_SAFE_NONE;

intb_class1=0;
intb_class2=0;
intb_class3=0;
intb_class4=0;
intret=0;

char*p=pass;
for(p=pass;p<(pass+len);p++){
if(ret>=PASS_SAFE_HIG)returnPASS_SAFE_HIG;

if(*p>='0'&&*p<='9'){//0-9
if(b_class1){
continue;
}else{
b_class1=1;
ret++;
}
}elseif(*p>='A'&&*p<='Z'){//Upper
if(b_class2){
continue;
}else{
b_class2=1;
ret++;
}
}elseif(*p>='a'&&*p<='z'){//Lower
if(b_class3){
continue;
}else{
b_class3=1;
ret++;
}
}else{//Symb
if(b_class4){
continue;
}else{
b_class4=1;
ret++;
}
}
}
returnret;
}

I. c語言 密碼設置問題

scanf中的\n去掉
使用文件操作,把修改後的密碼保存在文件中每次程序啟動時讀取該文件,獲得密碼.當然文件中的密碼可以是加密後的值,不考慮安全性的話,也可以是明文的

J. C語言問題,怎麼給系統設置一個密碼

void main(){
int menunum; //
char c;
int count=0;
do{
char inputs[10]; //
printf("輸入你的密碼: "); //
scanf("%s",inputs); //

if(strcmp(inputs,"password")==0) //自己設置密碼為password {
printf("\n\t\t\t 人口信息管理系統(可輸入漢字)\n");
printf(" |^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|\n");
printf(" |1、輸入人口數據\t\t2、修改人口數據\t\t3、查找 |\n");
printf(" |4、排列人口數據\t\t5、列印人口信息\t\t6、刪除人口數據|\n");
printf(" |7、備份文件 \t\t8、恢復文件 \t\t9、清除已刪數據|\n");
printf(" |0、結束程序 \t\t\t\t\t |\n");
printf(" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ \n");
printf("\n 操作方式:");
scanf("%d",&menunum);
switch(menunum)
{
case 0:return;
case 1:{CreatPeople();break;}
case 2:{ChangePeople();break;}
case 3:{Find();break;}
case 4:{SortPeople();break;}
case 5:{PrintPeople();break;}
case 6:{DeletePeople();break;}
case 7:{BackPeople();break;}
case 8:{UpPeople();break;}
case 9:{ClearPeople();break;}
default: //switch中要加default的條件保證程序的健壯性
break;
}
printf("按回車鍵繼續\n");
c=getchar();c=getchar();
//system("cls");/*清屏*/
}
else //該保證三次輸入錯誤即程序結束
{
count++; //要初始化
if(count==3)
{
break;
return;
}
}
}while(1);
return;
}