一個關于c語言字符串加密的問題
in(){char password[80]; int i; scanf("%s",password); for(i=0;password[i]!='\0';i++) password[i]=password[i]+13; }2。
#include "stdlib。 h"struct pw{char ch1,ch2; struct pw *next;}main(){struct pw p,head; int i; head=(struct pw *)malloc(sizeof(struct pw)); p=head; for(i=1;ich1); p->ch2=p->ch1+13; p->next=(struct pw *)malloc(sizeof(struct pw)); p=p->next; p->next=NULL;} p=head;}。
一個c語言文件加密程序請高手指這是一個文件加密程序,請高手指點
1、if(argc!=4):這句話中的argc是命令行參數的個數,命令本身也算進去,所以加上要加密的文件名,加密密碼,加密后的文件名,不正好是4個參數嗎?如果不等于4,說明命令行輸入的不正確,所以要這樣判斷處理。
2、while(pwd[++j0]);這個循環為了使變量j0得到密碼的長度值,后面加分號,是為了只循環這一句,進行j0的自增運算,否則會把下面的語句ch=fgetc(fp1);作為循環體來執行了。 ch=fgetc(fp1);讀取fp1指針所指向文件的當前字符。
3、fputc(ch^pwd[j>=j0?j=0:j++],fp2);這句話中變量j的值變化,是與j0進行比較,j0的值就是加密密碼的長度值,通過三目條件運算符,如果j值大于等于j0,j等于0,就取pwd[0]的值,否則依次取密碼的下一個字符,并且將讀取的ch字符與密碼進行異或運算,通過fputc寫入fp2指針指向的文件中。 。
用C語言做一個加密或者解密的程序
搜狐博客 >2WDragon >日志 >C++/C 2008-07-17 | [轉貼] 采用文件逐字節與密碼異或方式對文件進行加密 標簽: 異或加密
/*給文件加密的技術很多,其中又分為不同等級,以適合不同場合的需要.這里給出最簡單的文件加密技術,即采用文件逐字節與密碼異或方式對文件進行加密,當解密時,只需再運行一遍加密程序即可.下面是一個實例程序,能對任意一個文件進行加密,密碼要求用戶輸入,限8位以內(當然你可以再更改).程序有很好的容錯設計,這是我們應該學習的.
Turbo 2.0 pass. give file a password! */
#include
#include
#include
#include
void dofile(char *in_fname,char *pwd,char *out_fname);
/*對文件進行加密的具體函數*/
void main(int argc,char *argv[])/*定義main()函數的命令行參數*/
{
char in_fname[30];/*用戶輸入的要加密的文件名*/
char out_fname[30];
char pwd[8];/*用來保存密碼*/
if(argc!=4)
{/*容錯處理*/
printf("\nIn-fname:\n");
gets(in_fname);/*得到要加密的文件名*/
printf("Password:\n");
gets(pwd);/*得到密碼*/
printf("Out-file:\n");
gets(out_fname);/*得到加密后你要的文件名*/
dofile(in_fname,pwd,out_fname);
}
else
{/*如果命令行參數正確,便直接運行程序*/
strcpy(in_fname,argv[1]);
strcpy(pwd,argv[2]);
strcpy(out_fname,argv[3]);
dofile(in_fname,pwd,out_fname);
}
}
/*加密子函數開始*/
void dofile(char *in_fname,char *pwd,char *out_file)
{
FILE *fp1,*fp2;
register char ch;
int j=0;
int j0=0;
fp1=fopen(in_fname,"rb");
if(fp1==NULL)
{
printf("cannot open in-file.\n");
exit(1);/*如果不能打開要加密的文件,便退出程序*/
}
fp2=fopen(out_file,"wb");
if(fp2==NULL)
{
printf("cannot open or create out-file.\n");
exit(1);/*如果不能建立加密后的文件,便退出*/
}
while(pwd[++j0]);
ch=fgetc(fp1);
/*加密算法開始*/
while(!feof(fp1))
{
fputc(ch^pwd[j>=j0?j=0:j++],fp2);/*異或后寫入fp2文件*/
ch=fgetc(fp1);
}
fclose(fp1);/*關閉源文件*/
fclose(fp2);/*關閉目標文件*/
}/*程序結束*/
C語言/加密解密
給你一個加密算法 我寫的 用異或算法處理文本類的文檔#include
"); getch(); exit(1); } printf("輸入您要解密到的文件夾名稱:"); scanf("%s",FS); if((f2=fopen(FS,"w"))==NULL) { printf("您的輸入有誤,系統將不能完成任務,請重新進入。"); getch(); exit(1); } printf("輸入密碼:"); scanf("%s",mima);l=strlen(mima); k=0; ch=fgetc(f1); while(ch!=EOF) { k=k%l; fputc(ch^mima[k],f2); ch=fgetc(f1); k++; } fclose(f1); fclose(f2); printf("解密成功,請在該軟件目錄找到您解密的文件。
\n"); getch();}jiami(){ int k,l; char FN[20],FS[20]; char ch,mima[40],x; FILE *f1,*f2; printf("輸入要打開的文件夾名稱:"); scanf("%s",FN); if((f1=fopen(FN,"r"))==NULL) { printf("您的路徑有誤,系統將不能完成任務,請重新進入。"); getch(); exit(1); } printf("輸入要保存的文件夾名稱:"); scanf("%s",FS); if((f2=fopen(FS,"w"))==NULL) { printf("您的輸入有誤,系統將不能完成任務,請重新進入。
"); getch(); exit(1); } printf("輸入密碼:"); scanf("%s",mima); l=strlen(mima); k=0; ch=fgetc(f1); while(ch!=EOF) //文件沒有到底就繼續 ,EOF文件的底部 { k=k%l; fputc(ch^mima[k],f2); ch=fgetc(f1); k++; } fclose(f1); fclose(f2); printf("加密成功,請在該軟件目錄找到您加密的文件。\n"); getch();}main(){char y;while(1){printf("說明:歡迎使用文件加密程序,該程序可以將txt文檔加密為為不可讀文件,解密后返回原狀態\n\n");printf("小提示:輸入文件名字的時候請使用字母,數字或下劃線。
\n并且請加上(文件名).txt的后綴,要加密的文件請放在和程序文件同目錄下\n\n");printf(" ******菜單*******\n"); printf(" * 1.加密 *\n");printf(" * 2.解密 *\n");printf(" * 0.退出 *\n");printf(" *****************\n"); printf(" 請輸入要執行的命令:\n");y=getch();switch(y){ case '1': jiami();system("cls");break; case '2': jiemi();system("cls");break; case '0': exit(0); }}}。
c語言 數據加密
#include
C語言 字符串加密
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void)
{
char c[100];
int k;
int len,i,temp;
scanf("%s",c);
scanf("%d",&k);
len = (int)strlen(c);
k = k%26;
for(i=0;i<len;i++)
{
if (c[i] >= 'a' && c[i] <= 'z')
{
if(c[i]+k > 'z')
{
temp = 'z'-c[i];
temp = k - temp - 1;
c[i]='a'+temp;
}
else
{
c[i]+=k;
}
}
else if (c[i] >= 'A' && c[i] <= 'Z')
{
if(c[i]+k > 'Z')
{
temp = 'Z'-c[i];
temp = k - temp - 1;
c[i]='A'+temp;
}
else
{
c[i]+=k;
}
}
else
{
/* do nothing */
}
}
printf("%s\n",c);
return 0;
}
c語言加密解密算法
這里使用的是按位加密,按ASCII碼進行加密的算法自己寫個,很容易的。
#include
C語言 加密算法
#include 搜狐博客 > 2WDragon > 日志 > C++/C 2008-07-17 | [轉貼] 采用文件逐字節與密碼異或方式對文件進行加密 標簽: 異或加密 /*給文件加密的技術很多,其中又分為不同等級,以適合不同場合的需要.這里給出最簡單的文件加密技術,即采用文件逐字節與密碼異或方式對文件進行加密,當解密時,只需再運行一遍加密程序即可.下面是一個實例程序,能對任意一個文件進行加密,密碼要求用戶輸入,限8位以內(當然你可以再更改).程序有很好的容錯設計,這是我們應該學習的. Turbo 2.0 pass. give file a password! */#include 用C語言做一個加密或者解密的程序