C语言 解密
调了半天,楼主真是太粗心了!middle1[]应该这样声明:
char middle1[]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
最后输出start的时候要注意控制长度,改个for循环就好了!
#include
#include
int main(void)
{
int i,j,length,n;
char temp;
char middle2[27];
char start[201],finish[201];
char middle1[]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
gets(middle2);
gets(finish);
scanf("%d",&n);
length=strlen(finish);
for(i=0;i<25;i++)
{
for(j=i+1;j<26;j++)
{
if(middle2[i]>middle2[j])
{
temp=middle2[i];
middle2[i]=middle2[j];
middle2[j]=temp;
temp=middle1[i];
middle1[i]=middle1[j];
middle1[j]=temp;
}
}
}
for(i=1;i<=n;i++)
{
for(j=0;j<length;j++)
{
if(finish[j]==' ')
{
start[j]=' ';
}
else
{
start[j]=middle1[finish[j]-'A'];
}
}
}
for( i = 0;i < length;++i)
printf("%c",start[i]);
printf("
");
return 0;
}
/*
ABCDEFGHIJKLMNOPQRSTUVWXYZ
*/
#include #include void jiami(char *s,int n){for(;*s;s++) if(isalpha(*s)) *s=*s%32+n>25?*s+n-26:*s+n;}void jiemi(char *s,int n){for(;*s;s++) if(isalpha(*s)) *s=*s%32-n<1?*s+26-n:*s-n;}int main(){ char s[200]; int n; gets(s); scanf("%d",&n); jiami(s,n); puts(s); jiemi(s,n); puts(s); return 0;}
#include<stdio.h>
#include<string.h>
main()
{ char s[100][1000],a[100][500];
int i,j,n,m1,m2,l,b[100][500];
while(1){
scanf("%d",&n);
getchar();
for(i=0;i<n;i++)
gets(s[i]);
for(i=0;i<n;i++){
l=strlen(s[i]);
for(j=0;j<l;j+=2){
if(s[i][j]<='9')
m1=s[i][j]-'0';
else
m1=s[i][j]-'A'+10;
if(s[i][j+1]<='9')
m2=s[i][j+1]-'0';
else
m2=s[i][j+1]-'A'+10;
b[i][j/2]=m1*16+m2;
if(b[i][j/2]<26) a[i][j/2]=b[i][j/2]+'A';
if(b[i][j/2]>25&&b[i][j/2]<52) a[i][j/2]=b[i][j/2]-26+'a';
if(b[i][j/2]==95) a[i][j/2]='_';
if(b[i][j/2]==59) a[i][j/2]=';';
}
}
printf("
");
for(i=0;i<n;i++) printf("%s
",a[i]);
}
}
如图所示,望采纳。。。。。。
扈左锁阳: 展开全部#include#include void MtoC(char m[50],char k[10],char c[50]) { int m1[50],k1[10],c1[50],i,j; for(i=0;i k1[i]=k[i]-'a'; for(j=0;j { m1[j]=m[j]-'a'; c1[j]=(m1[j]+k1[j%strlen(k)])%26; c[j]=c1[j]+'a'; printf("%c------%c\n",m[j],c[j]); } } void CtoM(char c[50],...
平定县18742217444: C语言自定义输入任意字符来进行加密解密? - ?
扈左锁阳:#include #include int main() {char c[100];printf("输入不超过100个字符,回车键结束:");gets(c);int i;printf("原文为:%s\n",c);for(i=0;i printf("加密后的密文为:%s\n",c);return 0; }
平定县18742217444: C语言/加密解密 - ?
扈左锁阳: 给你一个加密算法 我写的 用异或算法处理文本类的文档#include<stdio.h>#include<conio.h>#include<stdlib.h> #include<time.h> jiemi() { int k,l; char FN[40],FS[40];char ch,mima[40],x;FILE *f1,*f2; printf("输入要解密的文件夹名称:");...
平定县18742217444: C语言 文件加密解密 - ?
扈左锁阳: 加密:#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];/*用户输入的要加密的文件...
平定县18742217444: c语言加密解密 - ?
扈左锁阳: #include <stdio.h>#include <cstdlib> main() { char password[10],len,i=0,ch,c; char infile[20]; FILE * in; printf("FILE NAME:");scanf("%s",infile); if((in=fopen(infile,"r+"))==NULL) { printf("ERROR!"); exit(0); } printf("KEY:"); scanf("%s",...
平定县18742217444: c语言程序设计文件加密解密 - ?
扈左锁阳: #include<stdio.h>#include<string.h>#include<stdlib.h> main() { void sc(char *fp,char *key,int Flen,int Klen); FILE *fp; char *pBuf,filename[20],key[20],ch; printf("请输入选择:A、加密 B、解密 C退出\n"); ch=getchar(); while(ch!='c'&&ch!='C') { ...
平定县18742217444: 如何用C语言编写密码程序 - ?
扈左锁阳: 1、用一个字符数组来存密码 再用一个字符数组接收你的输入,然后用strcmp 来比较,如果返回0则密码是正确的 2、例程: 1 2 3 4 5 6 7 8 9 10 11 12 13 14#include "stdio.h" #include "string.h" intmain() {charmima[100]="YuanShi888";charinput[100]={0};printf("请输入密码:");gets(input);if(strcmp(mima,input)==0)printf("恭喜你,密码正确!\n");elseprintf("对不起,密码输入错误!\n");}
平定县18742217444: C语言编写对文件加密及解密? - ?
扈左锁阳: 常用简单的加密就是把字符移位,读取一个字符,将它+100,然后存为新文件中,解密时就读取-100,然后就是原文件了.还有就是读个字符和一个值异或,解密时还用这个加密的异或一遍,比较...
平定县18742217444: 用c语言设计一个简单地加密算,解密算法,并说明其中的原理 - ?
扈左锁阳: 可能很长 ,这是在我以前一个程序里摘出来的. 原理:用户输入创建密码,机器读取,并把每一位密码进行加密,这里就是把每一位的 ASCII码加一(也可以有其他的加密方式),然后保存在文件里.解密时从文件中读取保存的乱码,然后把...
平定县18742217444: c语言,编程实现文件的加密解密. - ?
扈左锁阳: 文本模式肯定是一致的,至于二进制嘛,又不是二进制文件,不好吧.