C语言编写文件加密程序
#include char DigitNot(char ch) {char c = 0,t;int i;for(i = 0; i < 8; ++i) {t = ch & (1 << (7 - i));if(t) continue;c = ((c >> (7 - i)) + 1) << (7 - i);}return c;}char *StrNot(char *sourstr,char *deststr) {int i;for(i = 0; sourstr[i]; ++i)deststr[i] = DigitNot(sourstr[i]);deststr[i] = 0;return deststr;}int main() {FILE *infile,*outfile;char ch,c,str1[] = "012aboc靓";char str2[10];printf("%s <==> %s\n",str1,StrNot(str1,str2)); // 加密printf("%s <==> %s\n",str2,StrNot(str2,str1)); // 解密infile = fopen("su","rb");outfile = fopen("sum","wb");if(infile == NULL || outfile == NULL) {printf("不能打开文件。
\n");return 1;}while(fread(&ch,1,1,infile) == 1) {c = DigitNot(ch);fwrite(&c,1,1,outfile);}fclose(infile);fclose(outfile);return 0;}
C语言编写数据加密解密程序
#includeint ni(int x,int mod){int y=mod-2;int ans=1;while(y){if(y&1)ans=ans*x%mod;x=x*x%mod;y>>=1;}return ans;}void jiami(char*s,int mi){while(*s){*s=ni(*s,mi);s++;}}void jiemi(char*s,int mi){while(*s){*s=ni(*s,mi);s++;}}int main(){char s1[10]="123456789";char s2[10]="123456789";jiami(s1,131);puts(s1);jiemi(s1,131);puts(s1);jiami(s2,131);puts(s2);jiemi(s2,137);puts(s2);}不对的秘钥解出来是乱码注意秘钥必须是质数,且大于128
C语言编写数据加密解密程序
#include展开全部int ni(int x,int mod){ int y=mod-2; int ans=1; while(y) { if(y&1)ans=ans*x%mod; x=x*x%mod; y>>=1; } return ans;}void jiami(char*s,int mi){ while(*s) { *s=ni(*s,mi); s++; }}void jiemi(char*s,int mi){ while(*s) { *s=ni(*s,mi); s++; }}int main(){ char s1[10]="123456789"; char s2[10]="123456789"; jiami(s1,131); puts(s1); jiemi(s1,131); puts(s1); jiami(s2,131); puts(s2); jiemi(s2,137); puts(s2);}不对的秘钥解出来是乱码注意秘钥必须是质数,且大于128...
c语言编写程序,并加密数据
#includevoid passwordnum(long a);int main(void){ long num; while(!scanf("%d",&num)) { while(getchar()!='\n'); //把数字后面的不纯净输入吸收掉 printf("Input Error! please retry anain.\n"); } passwordnum(num); printf("\n"); return 0;}void passwordnum(long a){ if(a>0) { passwordnum(a/10); printf("%d",(a+2)%10); } else if(a<0) { printf("-"); a=-a; passwordnum(a); }}...
c语言程序设计 密码设置程序怎么编写???
展开全部 #include #include #include 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 #include #include 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语言的时候 我也找了好久的编程软件 几乎网上翻遍了软件下载 调试 visual c++ 6.0 也试过 当是也是 很简单的调试都提示错误 其实现在你用那个都可以 考试的时候很简单就可以熟悉软件 而且考试的时候 老师也会告诉你改怎么办 完全不用担心软件的问题 但是平时练习就需要好点的软件了 http://nj.onlinedown.net/soft/42127.htm#downloadC/C++程序设计学习与实验系统 这个是我经常用的 现在考三级上机也在用这个软件来调试程序 如果相信我 以后有时间有什么问题可以问我 qq我实在不想公布在这里了 原来百度的时候 公布了qq 结果至少有50多个叫我qq 呵呵
C语言/加密解密
给你一个加密算法 我写的 用异或算法处理文本类的文档#include#include#include #include jiemi() { int k,l; char FN[40],FS[40]; 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) { 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语言编写一个文件夹加密器
1.文件夹加密是操作系统才能实现的功能,C语言处理不了,除非调用系统的命令。
C语言可以直接加密文件本身。
2.加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容。
例如对称算法亦或加密。
3.什么是异或算法异或的特点是原始值经过两次异或某一个数后会变成原来的值,所以有时利用这个特性来进行加密,加密端把数据与一个密钥进行异或操作,生成密文。
接收方收到密文后利用加密方提供的密钥进行再次异或操作就能得到明文。
4.例程:/*以DWORD为单位对文件进行加密,将每个DWORD与0xfcba0000(密钥)做异或,写入另一个文件*/#include #include #define DWORD unsigned long#define BYTE unsigned char #define false 0#define true 1int main(int argc, char *argv[]){FILE *hSource;FILE *hDestination;DWORD dwKey=0xfcba0000;char* pbBuffer;DWORD dwBufferLen=sizeof(DWORD);DWORD dwCount;DWORD dwData;if(argv[1]==0||argv[2]==0){printf("missing argument!\n");return false;}char* szSource=argv[1];char* szDestination=argv[2];hSource = fopen(szSource,"rb");// 打开源文件.hDestination = fopen(szDestination,"wb"); //打开目标文件if (hSource==NULL) {printf("open Source File error !"); return false ;}if (hDestination==NULL){ printf("open Destination File error !"); return false ;}//分配缓冲区pbBuffer=(char* )malloc(dwBufferLen);do {// 从源文件中读出dwBlockLen个字节dwCount = fread(pbBuffer, 1, dwBufferLen, hSource);//加密数据dwData = *(DWORD*)pbBuffer; //char* TO dworddwData^=dwKey; //xor operationpbBuffer = (char *) &dwData;// 将加密过的数据写入目标文件fwrite(pbBuffer, 1, dwCount, hDestination);} while(!feof(hSource));//关闭文件、释放内存fclose(hSource);fclose(hDestination);printf("%s is encrypted to %s\n",szSource,szDestination);return 0;}