
正文
c语言加密函数字符串 c语言字符串的加密
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
C语言字符串加密
问题不小c语言加密函数字符串,你表面用c语言加密函数字符串的是C
但是,好多地方不符合Cc语言加密函数字符串的语法
,,比如:
for
(int
i=0;
str[i]
!=
'\0';
i++)
还有,就是你好像没有弄清楚
,你要做什么似的,有好多无用的东西,
就像你的函数里的,key
,虽然你提到keyc语言加密函数字符串了,但是你根本没有使用key,你只是使用45来进行加密,,还有就是一个文件
的大小,是不确定的,你用一个100个字符的字符串来存,有点那个不安全c语言加密函数字符串了,,如果稍长一点就会出问题,产生运行时错误。其实你这个加密和解密是一个可逆过程,用一个函数,就可以了,具体你想要的也不是太明白,就给你弄了一个简单一点加密和解密程序
,输入输出不是同一个文件
,不知道是不是你想要的。
#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;
}
如果想看一些好一点的加密算法
,我这里有一些,联系我发给你
,,
相关问答
Q1: C语言 字符串加密
#includestdio.h
#includestdlib.h
#includestring.h
int main(void)
{
char c[100];
int k;
int len,i,temp;
scanf("%s",c);
scanf("%d",k);
len = (int)strlen(c);
k = k%26;
for(i=0;ilen;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;
}
}
else 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;
}
}
else
{
/* do nothing */
}
}
printf("%s\n",c);
return 0;
}
Q2: c语言编写字符串加密函数 不要写得太难啊
#include stdio.h
#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();
}
Q3: 编写函数完成字符串的加密与解密(c语言)?
C语言代码和运行结果如下c语言加密函数字符串:
输出符合示例c语言加密函数字符串,加解密均正确c语言加密函数字符串,望采纳~
附源码链接c语言加密函数字符串:字符串加解密
Q4: C语言怎么加密字符
我没注意只要小写c语言加密函数字符串,我写c语言加密函数字符串的是大小写都可以的,另外附送输入验证。
#include stdio.h
#include string.h
int main()
{
char str[]="00000",str2[]="00000",*p=str,*p2=str2;
printf("输入5个字母c语言加密函数字符串:");
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语言加密函数字符串和c语言字符串的加密的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。




