① c语言 字符串加密
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
intmain(void)
{
charc[100];
intk;
intlen,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;
}
}
elseif(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
{
/*donothing*/
}
}
printf("%s ",c);
return0;
}
② C语言怎么加密字符
#include<stdio.h>
#include<string.h>
intmain()
{
charstr[]="00000",str2[]="00000",*p=str,*p2=str2;
printf("输入5个字母:");
while(*p!=0)
{
scanf("%c",p);
if(*p=='
')
continue;
if(*p<'A'||(*p>'Z'&&*p<'a')||*p>'z')//输入验证,必须是字母
{
printf("只能输入字母,请重新输入
");
p=str;
p2=str2;
fflush(stdin);//输入有错重新输入前清空缓冲区。fflush属于c扩展函数,正常使用没问题,如需在linuxggc上使用,考虑多次调用getchar函数来清空
}
else
{
*p2=(*p)+4;
if(*p2>90&&*p2<97)//大写字母加4,最大位不超出
*p2='A'+(*p2-90)-1;
if(*p2>122)//小写字母加4,最大位不超出
*p2='a'+(*p2-122)-1;
p2++;
p++;
}
}
printf("原字符串为:%s
加密后的字符串为:%s
",str,str2);
return0;
}
③ 用C语言编写一个对称加密算法,对字符串加密
/*本问题的关键是如何交换ASCII的二进制位,下面提供简短算法,并附上VC++6.0环境下的运行结果截图。
*/
#include<stdio.h>
charswapbit(charc){
chari,num=0,ch[8];
for(i=0;i<8;i++){
ch[i]=c&1;
c=(c>>1);
}
for(i=0;i<8;i++){
num=2*num+ch[i];
}
returnnum;
}
intmain(){
charch;
for(ch='A';ch<='Z';ch++){
printf("%c=%X:%X ",ch,ch,0XFF&swapbit(ch));
}
return0;
}
④ c语言编写字符串加密函数 不要写得太难啊
#include<stdio.h>
#include<ctype.h>
char*encrypt(char*text){
charc;
char*p=text;
for(;*text;++text){
c=*text;
if(isdigit(c))
*text='0'+'9'-c;
elseif(islower(c)){
c=c+3;
if(c>'z')
c=c-26;
*text=c;
}elseif(isupper(c)){
c=c+3;
if(c>'Z')
c=c-26;
*text=c;
}
}
returnp;
}
intmain(){
chartext[100];
printf("输入明文:");
scanf("%s",text);
printf("密文:%s ",encrypt(text));
getchar();
}
⑤ 编写函数完成字符串的加密与解密(c语言)
C语言代码和运行结果如下:
输出符合示例,加解密均正确,望采纳~
附源码链接:字符串加解密
⑥ C语言字符串加密
问题不小,你表面用的是C
但是,好多地方不符合C的语法
,,比如:
for
(int
i=0;
str[i]
!=
'\0';
i++)
还有,就是你好像没有弄清楚
,你要做什么似的,有好多无用的东西,
就像你的函数里的,key
,虽然你提到key了,但是你根本没有使用key,你只是使用45来进行加密,,还有就是一个文件
的大小,是不确定的,你用一个100个字符的字符串来存,有点那个不安全了,,如果稍长一点就会出问题,产生运行时错误。其实你这个加密和解密是一个可逆过程,用一个函数,就可以了,具体你想要的也不是太明白,就给你弄了一个简单一点加密和解密程序
,输入输出不是同一个文件
,不知道是不是你想要的。
#include
#include
#include
void
Decrypt()
{
char
fname[FILENAME_MAX];
char
fname2[FILENAME_MAX];
FILE*
fp;
FILE*
fp1;
int
key;
char
c;
printf("输入要加/解密文件的路径:\n");
scanf("%s",
fname);
printf("请输入密钥:\n");
scanf("%d",&key);
strcpy(fname2,fname);
strcat(fname2,".txt");
if(
(fp
=
fopen(fname,"r+"))
==
NULL)
{
printf("error");
exit(1);
}
if(
(fp1
=
fopen(fname2,"w+"))
==
NULL)
{
printf("error");
exit(1);
}
while(
(c
=
fgetc(fp))
!=
EOF)
{
c
=
c^key;
fputc(c,fp1);
}
fcloseall();
}
int
main()
{
Decrypt();
return
0;
}
如果想看一些好一点的加密算法
,我这里有一些,联系我发给你
,,
⑦ C语言字符串加密 多实例
string i;
int k;
cin>>i>>k;
for (int q=0;q<i.length();q++)
{
if (i[q]>='a'&& i[q]<='z')
i[q]=char((i[q]-'a'+k)%26+'a');
else
if (i[q]>='A'&&i[q]<='Z')
i[q]=char((i[q]-'A'+k)%26+'A');
}
⑧ C语言字符串按要求加密 求教
void encryp(char *plain,char *cipher)这个函数你写复杂了,如下就可以了——
void encryp(char *plain,char *cipher){
int i;
for(i=0;plain[i];i++)
cipher[i]=plain[i]-24;
cipher[i]='\0';
}
这样加密就完结了。
⑨ C语言对称及可逆加密算法,急!!!
#include<stdio.h>
#include<string.h>
voidEncode(chars[],charkey[]){
inti,j,k,t,ch;
chartmp[9];
intlen=strlen(key);
for(i=0,j=0;s[i];++i){
t=key[j];
for(k=0;k<8;++k){
tmp[k]=(s[i]&1)^(t&1);
s[i]>>=1;
t>>=1;
}
ch=0;
for(k=7;k>=0;--k)
ch=2*ch+tmp[k];
s[i]=ch;
j=(j+1)%len;
}
}
intmain(){
chars[]="AbcdXYZ2014";
charkey[]="GodKnow";
printf("明文:%s ",s);
Encode(s,key);
printf("密文: %s ",s);
Encode(s,key);
printf("明文:%s ",s);
return0;
}
⑩ [高分]C语言对字符串的加密和解密
char
ch,name[30],over;
FILE
*fp;
printf("请输入要加密的文件名(正确的做法是:先把解密的数不知道,你想要什么样的加密算法。
AES不错。不过AES是对16个字节长度加密,要是不是16的倍数,处理有点麻烦据保存到字符串里,全部结束之后,一次性把解密