今天给各位分享c语言替换加密的知识,其中也会对c语言字母替换加密算法进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
1、C语言怎么加密字符2、C语言设计一个用简单的加密程序,即用字母替换的方式加密,程序运行中发现问题,求解释。3、C语言凯撒加密是一种移位替代加密算法,即将字母表A-Z向左移位,然后用移位后的字母表替原来的明文得到密文4、C语言VC++6.0实现一个置换加密5、C语言设计一个简单的加密解密程序6、编写函数完成字符串的加密与解密(c语言)?
C语言怎么加密字符
我没注意只要小写,我写的是大小写都可以的,另外附送输入验证。
#include stdio.h
#include string.h
int main()
{
char str[]=”00000″,str2[]=”00000″,*p=str,*p2=str2;
printf(“输入5个字母:”);
while(*p!=0)
{
scanf(“%c”,p);
if(*p==’\n’)
continue;
if(*p’A’||(*p’Z’*p’a’) || *p’z’) //输入验证,必须是字母
{
printf(“只能输入字母,请重新输入\n”);
p=str;
p2=str2;
fflush(stdin);//输入有错重新输入前清空缓冲区。fflush属于c扩展函数,正常使用没问题,如需在linux ggc上使用,考虑多次调用getchar函数来清空
}
else
{
*p2=(*p)+4;
if(*p290 *p297) //大写字母加4,最大位不超出
*p2=’A’+(*p2-90)-1;
if(*p2122) //小写字母加4,最大位不超出
*p2=’a’+(*p2-122)-1;
p2++;
p++;
}
}
printf(“原字符串为:%s\n加密后的字符串为:%s\n”,str,str2);
return 0;
}
C语言设计一个用简单的加密程序,即用字母替换的方式加密,程序运行中发现问题,求解释。
原因就是char是1个字节的,你不能超过127(hi,楼上的,不是128哦,是-128~127不要误人子弟),你到后面的vwxyz已经溢出,所以是乱码。
我的解决方法就很简单,就是换成unsigned char 数组,这样取值范围增大到(0~255)就可以了,既简单又不破坏原有的结构
还有
else if(str[i]’a’)
{
str[i]+=26;
}
这句话是废话,可以删掉
我修改过的版本
#include stdio.h
#include string.h
#include ctype.h
void EncodeString(unsigned char *str,int key)
{
int length,i;//length为传入字符串长度,i用作循环计数器
length=strlen(str);
for(i=0;ilength;i++)//对字符串中的每个字符依次进行加密
{
if(isupper(str[i]))//对大写字母加密
{
str[i]+=key%26;
if(str[i]’Z’)
{
str[i]-=26;
}
}
else if(islower(str[i]))//对小写字母加密
{
str[i]+=key%26;
if(str[i]’z’)
{
str[i]-=26;
}
}
}
}
void main()
{
unsigned char arr[50],buffer;//arr[50]用来接收字符串信息,buffer用来接收缓冲区中的回车
int key;//key为加密秘钥
printf(“This program encodes messages using a cyclic cipher.\n”);
printf(“To stop, enter 0 as the key.\n”);
while(1)//程序一直运行,直到输入密钥0为止
{
printf(“Enter the key: “);
scanf(“%d”,key);
scanf(“%c”,buffer);
if(0==key)
{
break;//输入密钥为0,则退出程序
}
printf(“Enter a message: “);
scanf(“%s”,arr);
scanf(“%c”,buffer);
EncodeString(arr,key);
printf(“Encoded message: %s\n”,arr);
}
}
C语言凯撒加密是一种移位替代加密算法,即将字母表A-Z向左移位,然后用移位后的字母表替原来的明文得到密文
#include iostream
#include string
using namespace std;
int main()
{
string code;//储存初始字符串
string d_code;//加密后的字符串
int i;
int n; //移位的个数
cout”Enter the string “endl;
cincode;
cout”how many step do you want to move ?”endl;
cinn;
for(i=0;icode.size();++i)
{
if(int(code[i])97)
{
if(int(code[i])+n122)
d_code[i]=int(code[i])+n-26;
else
d_code[i]=int(code[i])+n;
}
else if(int(code[i])+n90)
d_code[i]=char(int(code[i])+n-26);
else
d_code[i]=char(int(code[i]+n));
}
for(i=0;icode.size();++i)
{
coutd_code[i];
}
coutendl;
cout”Code = “codeendl;
return 0;
}
C语言VC++6.0实现一个置换加密
这个应该满足要求:
#includestdio.h
#includestdlib.h
#includestring.h
FILE *fi,*fo;
char ps[20],txt1[1024],txt2[1024];
int plen,ps1[20];
int i,j,k;
void main(){
printf(“password? “);
scanf(“%s”,ps);
plen=strlen(ps);
printf(“PASSWORD is %s in length of %d, separated into:\n”,ps,plen);
for(i=0;iplen;i++){ps1[i]=ps[i]-48;printf(“%3d”,ps1[i]);}
fi=fopen(“d:\\datin.txt”,”ra”);
if(fi==NULL)exit(111);
fscanf(fi,”%s\n”,txt1);
fclose(fi);
printf(“\n\n—TEXT in file d:\\datin.txt before encoding : —\n%s\n”,txt1);
fo=fopen(“d:\\datout.txt”,”wa”);
if(fo==NULL)exit(222);
for(j=0;jstrlen(txt1);j++){
for(i=0;iplen;i++)fprintf(fo,”%c”,txt1[ps1[i]-1+j]);
j+=plen-1;
}
fclose(fo);
fi=fopen(“d:\\datout.txt”,”ra”);
fscanf(fi,”%s\n”,txt2);
fclose(fi);
printf(“\n—TEXT in file d:\\datout.txt after encoding : —\n%s”,txt2);
printf(“\n”);
}
// contents in datin.txt:
// abcdefghijklmnopqrstuvwxyz1234567890
C语言设计一个简单的加密解密程序
C语言设计一个简单的加密解密程序如下:
加密程序代码:
#includestdio.h
main()
{
char
c,filename[20];
FILE
*fp1,*fp2;
printf(“请输入待加密的文件名:\n”);
scanf(“%s”,filename);
fp1=fopen(filename,”r”);
fp2=fopen(“miwen.txt”,”w”);
do
{
c=fgetc(fp1);
if(c=32c=126)
{
c=c-32;
c=126-c;
}
if(c!=-1)
fprintf(fp2,”%c”,c);
}
while(c!=-1);
}
解密程序代码:
#includestdio.h
#includestring.h
main()
{
char
c,filename[20];
char
yanzhengma[20];
FILE
*fp1,*fp2;
printf(“请输入待解密文件名:\n”);
scanf(“%s”,filename);
printf(“请输入验证码:\n”);
scanf(“%s”,yanzhengma);
if(strcmp(yanzhengma,”shan”)==0)
{
fp1=fopen(filename,”r”);
fp2=fopen(“yuanwen.txt”,”w”);
do
{
c=fgetc(fp1);
if(c=32c=126)
{
c=126-c;
c=32+c;
}
if(c!=-1)
fprintf(fp2,”%c”,c);
}
while(c!=-1);
}
else
{
printf(“验证码错误!请重新输入:\n”);
scanf(“%s”,filename);
}
}
编写函数完成字符串的加密与解密(c语言)?
C语言代码和运行结果如下:
输出符合示例,加解密均正确,望采纳~
附源码链接:字符串加解密
关于c语言替换加密和c语言字母替换加密算法的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。