#include stdio.h
成都网络公司-成都网站建设公司创新互联公司10年经验成就非凡,专业从事网站设计、成都网站设计,成都网页设计,成都网页制作,软文营销,广告投放平台等。10年来已成功提供全面的成都网站建设方案,打造行业特色的成都网站建设案例,建站热线:18980820575,我们期待您的来电!
#include ctype.h
char *encrypt(char *text) {
char c;
char *p = text;
for (; *text; ++text) {
c = *text;
if (isdigit(c))
*text = '0' + '9' - c;
else if (islower(c)) {
c = c + 3;
if (c 'z')
c = c - 26;
*text = c;
} else if (isupper(c)) {
c = c + 3;
if (c 'Z')
c = c - 26;
*text = c;
}
}
return p;
}
int main() {
char text[100];
printf("输入明文:");
scanf("%s", text);
printf("密文:%s\n", encrypt(text));
getchar();
}
#include stdio.h
#include string.h
#define MAX_LEN 1024
#define MAX_KEY_LEN 10
/* key必须是1-9之间的数字 */
/* 拥有K个字符的Key,包含且仅包含1-K */
int CheckKey(char*key)
{
int i,check[MAX_KEY_LEN]={0};
int max=strlen(key);
int keyVal;
for(i=0; imax; i++)
{
keyVal = key[i]-'0';
if(keyVal max || keyVal 1)
return 0;
if(check[keyVal]==1)
return 0;
else
check[keyVal] = 1;
}
return 1;
}
int Encrypt( char* word, char* key, char* secretWord )
{
int i,start;
int nLenWord = strlen(word);
int nLenKey = strlen(key);
int index[MAX_KEY_LEN];
if(nLenWord % nLenKey != 0)
{
printf("明文的位数不是密钥位数的整数倍!\n");
return 0;
}
for(i=0; inLenKey; i++)
{
index[i] = key[i] - '0' -1;
}
/*START 关键代码*/
start = 0;
while(start nLenWord)
{
for(i=0;inLenKey;i++)
{
secretWord[start + i] = word[start + index[i]];
}
start += nLenKey;
}
secretWord[nLenWord] = '\0';
/* END 关键代码*/
return 1;
}
int main()
{
char word[MAX_LEN];
char key[MAX_KEY_LEN];
char secretWord[MAX_LEN];
printf("请输入明文:");
scanf("%1024s",word);
printf("请输入密钥:");
scanf("%10s",key);
if(!CheckKey(key))
{
printf("密钥输入错误!\n");
exit(-1);
}
if(Encrypt(word,key,secretWord))
printf("密文是:%s\n",secretWord);
return 0;
}
C语言代码和运行结果如下:
输出符合示例,加解密均正确,望采纳~
附源码链接:字符串加解密
这样就可以了
#includestdio.h
void code(char *p,int key)
{
while(*p!='\0')
{
*p=97+(*p-97+key)%26;
p++;
}
}
void uncode(char *p,int key)
{
while(*p!='\0')
{
*p=97+(*p-71-key)%26;
p++;
}
}
main()
{
char str[100];
int n,key;
printf("输入密匙:");
scanf("%d",key);
printf("输入1加密,输入2解密:");
scanf("%d",n);
printf("输入字符串:");
scanf("%s",str);
if(n==1)
{
code(str,key);
printf("密文为%s\n",str);
}
else if(n==2)
{
uncode(str,key);
printf("原文为%s\n",str);
}
}
网页题目:加密c语言函数abc c语言加密程序az
文章URL:https://www.cdcxhl.com/article46/doipseg.html
成都网站建设公司_创新互联,为您提供动态网站、定制网站、营销型网站建设、品牌网站制作、虚拟主机、网站排名
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联