⑴ 对输入的字符串进行简单加密处理,并输出加密后的字符串
#include<stdio.h>
#include<string.h>
voidencodedecode(char*s,charc,intn){inti;for(i=0;i<n;i++,s++)*s^=c;}
voidmain(){chars[256],s1[20],c;intn,i;
printf("请输入字符串:");gets(s);n=strlen(s);
printf("请输入加密密钥(单个字符):");gets(s1);c=s1[0];
encodedecode(s,c,n);
printf("加密后的字符串:");for(i=0;i<n;i++)printf("%c",s[i]);printf(" ");
encodedecode(s,c,n);
printf("解密后的字符串:");for(i=0;i<n;i++)printf("%c",s[i]);printf(" ");
}
⑵ 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;
}
⑶ 字符串加密
#include <stdio.h>
#include <stdlib.h>
void replace(char *src, int n)
{
char *s = src;
n = n % 26;
while(*s != 0)
{
*s = *s + n;
if(*s > 'Z') *s -= 26;
s++;
}
}
void disorder(char *s, char *key)
{
int len = 0 , i = 0;
char *tmp;
while(s[len++] != 0);
tmp = (char*)malloc(sizeof(char) * (len));
while(i < len) tmp[i] = s[i++];
for(i = 0; i < len - 1; i++)
{
s[i] = tmp[key[i] - '0' - 1];
}
free(tmp);
}
void main()
{
int n;
char str[100], key[100];
printf("input <str n order >: ");
//请合法输入eg. AXZ 2 231
scanf("%s%d%s", str, &n, key);
replace(str, n);
printf("str = %s\n", str);
disorder(str, key);
printf("str = %s\n", str);
}
⑷ 用C语言对字符串加密
没看懂是什么意思?输出的是后几位的字母及数字,到底输出多少?加密算法是什么??
⑸ C语言字符串加密
#include <stdio.h>
encode(char * s)
{
char * x = s;
if (!x) return;
while(*x) {
(*x) += (char)2;
x++;
}
}
main()
{
char a[80];
scanf("%s", a);
encode(a);
printf(a);
}