导航:首页 > 文档加密 > c语言电文加密az

c语言电文加密az

发布时间:2022-08-14 19:08:38

1. C语言 文件加密解密

根据你的需要,修改了之前的代码。

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<time.h>

constunsignedintMAX_KEY_LENGTH=1000;

intencode(charconst*datafile,charconst*keyfill);
intdecode(charconst*datafile,charconst*keyfile);
intloadKey(charconst*keyfile,int*keys,unsignedintsize);
intsaveKey(charconst*keyfile,int*keys,unsignedintsize);
intgenerateKey(int*keys,unsignedintsize);

intmain(intargc,charconst*argv[])
{
chardatafile[]="encrypted.txt";
charkeyfile[]="key.txt";
intretcode,choice,loop=1;
charch[5]={''};

while(1)
{
printf("1.Encryption. ");
printf("2.Decryption. ");
printf("3.Exit. ");
printf("Selection(1,2,3):");
fgets(ch,sizeof(ch),stdin);
sscanf(ch,"%d",&choice);
switch(choice)
{
case1:
retcode=encode(datafile,keyfile);
if(retcode!=0)printf("error,%d",retcode);
break;

case2:
retcode=decode(datafile,keyfile);
if(retcode!=0)printf("error,%d",retcode);
break;

case3:
loop=0;
break;
default:
;
break;
}
if(0==loop)break;
}
return0;
}


intgenerateKey(int*keys,unsignedintsize)
{
charstr[]=",./;"'<>?";
size_tstr_len=sizeof(str)/sizeof(str[0]);
inti;

srand(time(NULL));
for(i=0;i<size;++i)
keys[i]=str[rand()%str_len];

return0;
}

intloadKey(charconst*keyfile,int*keys,unsignedintsize)
{
inti=0;
FILE*pfile;
intretcode=0;

pfile=fopen(keyfile,"r");
if(pfile==NULL)return-1;

while(!feof(pfile)){
if(i<size)
fscanf(pfile,"%d",&keys[i++]);
else
break;
}
fclose(pfile);
returni;
}

intsaveKey(charconst*keyfile,int*keys,unsignedintsize)
{
FILE*pfile;
inti;

pfile=fopen(keyfile,"w");
if(pfile==NULL)return-1;

for(i=0;i<size;++i){
fprintf(pfile,"%d",keys[i]);
}
fclose(pfile);
return0;
}

intencode(charconst*datafile,charconst*keyfile)
{
charoriginal[MAX_KEY_LENGTH]={''};
charencrypted[MAX_KEY_LENGTH]={''};
inti,size;
intkeys[MAX_KEY_LENGTH];
FILE*pdatafile,*pkeyfile;

pkeyfile=fopen(keyfile,"w");
if(NULL==pkeyfile)return-1;
fclose(pkeyfile);

puts("inputmessage:");
gets(original);
size=strlen(original);
if(0!=generateKey(keys,size))return-2;
if(0!=saveKey(keyfile,keys,size))return-3;

pdatafile=fopen(datafile,"w");
if(NULL==pdatafile)return-4;

for(i=0;i<size;++i){
encrypted[i]=original[i]+keys[i];
fputc(encrypted[i],pdatafile);
fputc(encrypted[i],stdout);
}
printf(" ");
fclose(pdatafile);
return0;
}

intdecode(charconst*datafile,charconst*keyfile)
{
FILE*pdatafile,*pkeyfile;
intkeys[MAX_KEY_LENGTH]={0};
charoriginal[MAX_KEY_LENGTH]={''};
charencrypted[MAX_KEY_LENGTH]={''};
inti,size;

pkeyfile=fopen(keyfile,"r");
if(NULL==pkeyfile)return-1;
fclose(pkeyfile);
pdatafile=fopen(datafile,"r");
if(NULL==pdatafile)return-2;

fscanf(pdatafile,"%s",encrypted);
fclose(pdatafile);

size=loadKey(keyfile,keys,MAX_KEY_LENGTH);
if(size<1)return-3;

for(i=0;i<strlen(encrypted);++i){
original[i]=encrypted[i]-keys[i];
fputc(original[i],stdout);
}
printf(" ");
return0;
}

运行结果:

1. Encryption.
2. Decryption.
3. Exit.
Selection (1,2,3):1
input message:
this is A test!
╓┐»╞Lñ╗ù|t▄╬╢╒è
1. Encryption.
2. Decryption.
3. Exit.
Selection (1,2,3):2
this is A test!
1. Encryption.
2. Decryption.
3. Exit.
Selection (1,2,3):3

2. 用c语言设计了一个加密算法:用a代替z,用b代替y,用c代替x,……,用z代替a。

#include <stdio.h>

int main()
{
char s[100],*p;
printf("请输入字符串 : ");
gets(s);
p = s;
while(*p)
{
if((*p >= 'a') && (*p <= 'z')) /*处理小写*/
{
*p ='z' - *p + 'a';
}
if((*p >= 'A') && (*p <= 'Z')) /*处理大写,同理处理数字亦一样..自己例推*/
{
*p ='Z' - *p + 'A';
}

p++;
}
printf("转换后的字符串为 : %s\n\n",s);
return 0;
}

3. 用C语言编程:对一行电文进行加密,每个字符转换为字母表中循环右移的第三的字母,如:a-b,b-e.....大写字

#include<stdio.h>

voidchange(chars[]){
inti;
for(i=0;s[i];++i){
if(s[i]>='a'&&s[i]<='z')
s[i]=(s[i]+2-'a')%26+'a';
elseif(s[i]>='A'&&s[i]<='Z')
s[i]=(s[i]+2-'A')%26+'A';
}
}

intmain(){
chars[256];
printf("输入一个字符串:");
scanf("%s",s);
change(s);
printf("转换后为:%s ",s);
return0;
}

4. C语言的程序设计 电文加密,每个字母转换为字母表中循环右移的第三个字母。

//对一行电文进行加密,每个字母转换为字母表中循环右移的第三个字母
//大写字母C加密后的ASCII码值为(c-62)%26+65
//小写字母C加密后的ASCII码值为(c-94)%26+97
#include<stdio.h>
void main()
{
//定义数组a和b,以及控制变量i
char a[3];
char b[3];
int i;

//提示输入三个字母
printf("请输入三个字母不要用空格隔开\n");
//用for循环控制接受字母
for(i=0;i<3;i++)
scanf("%c",&a[i]);

//在下一循环前加入该句
printf("经加密后为:");

//用for循环计算加密后的字母的ASCII值
for(i=0;i<=2;i++)
{
if(a[i]>=97)
b[i]=(a[i]-94)%26+97;
if(a[i]>=65&&a[i]<97)
b[i]=(a[i]-62)%26+65;
//输出结果
printf("%c",b[i]);
}
printf("\n");
}

5. c语言编程 电报密码问题

int main()
{
char ch;
char c[100];
int i=0;
int AZ = 'A' + 'Z';
int az = 'a' + 'z';
printf("Please input:\n");
while((ch=getch()) != 13)
{
putch(ch);
if(ch>='A' && ch<='Z')
{
c[i++] = AZ - ch;
continue;
}
if(ch>='a' && ch<='z')
{
c[i++] = az - ch;
continue;
}
c[i++] = ch;
}
c[i] = '\0';
printf("\n%s\n",c);
}

6. C语言加密请将电文中所有字母按A→F,B→G,……V→A,W→B,X→C,Y→D,Z→E,a→f,b→g加密

char CTestDlg::code(char org)
{
if (org<'A')
return org; /*小于A,不加密*/
else if(org<='Z')
return 'A'*((org+5)/('Z'+1))+((org+5)%('Z'+1));
else if(org<='a')
return org;
else if(org<='z')
return 'a'*((org+5)/('z'+1))+((org+5)%('z'+1));
else
return org;
}
我刚才测试了,没问题,直接用

7. c语言 a-z加密问题

假设原来的字符串数组中的元素为ch1,加密后的字符为ch2可以看出加密的过程是比原来的字符多3,可以采用取模运算进行循环,即Z之后可以用同样的方式计算到A,公式:ch2=ch1%26+3;其他加密计算方式相同

8. C语言文件加密

#include<stdio.h>
intmain()
{charch;
FILE*fp1,*fp2;
fp1=fopen("d:\file1.txt","r");
fp2=fopen("d:\file2.txt","w");
printf("加密后的内容: ");
while((ch=fgetc(fp1))!=EOF)
{ch^=0x6a;putchar(ch);fputc(ch,fp2);}
fclose(fp1);
fclose(fp2);
printf(" 解密后的内容: ");
fp2=fopen("d:\file2.txt","r");
while((ch=fgetc(fp2))!=EOF)
{ch^=0x6a;putchar(ch);}
return0;
}

9. c语言 文本文件加密

哥们,我想说你疯了吧,谁有时间给你写这个程序啊,程序写出来还要验证,不验证又不负责,你自己想想这需要多少的工作量?1小时?2小时?根本搞不定。
个人感觉很少有人愿意花时间给你写这个程序,建议你放弃,如果不会,找朋友或花钱。

阅读全文

与c语言电文加密az相关的资料

热点内容
电脑如何实现跨网段访问服务器 浏览:549
模块化网页源码字节跳动 浏览:485
梯度下降算法中遇到的问题 浏览:605
服务器连接电视怎么接 浏览:323
phploop语句 浏览:500
交叉编译工具链里的库在哪 浏览:781
安卓手q换号怎么改绑 浏览:399
nba球星加密货币 浏览:789
命令看网速 浏览:124
java堆分配 浏览:161
linuxbuiltin 浏览:560
cstpdf 浏览:941
texstudio编译在哪 浏览:352
国家反诈中心app注册登记表怎么注册 浏览:972
加密机默认端口 浏览:101
有哪个网站有免费的python源代码 浏览:304
苹果手机如何导入安卓电话 浏览:915
奥利奥双重解压 浏览:388
安卓账号怎么在苹果手机上玩 浏览:798
画画用什么安卓ipad好 浏览:693