导航:首页 > 编程语言 > 文本串加密和解密程序

文本串加密和解密程序

发布时间:2022-09-28 05:57:04

❶ [高分]C语言对字符串的加密和解密

char
ch,name[30],over;
FILE
*fp;
printf("请输入要加密的文件名(正确的做法是:先把解密的数不知道,你想要什么样的加密算法。
AES不错。不过AES是对16个字节长度加密,要是不是16的倍数,处理有点麻烦据保存到字符串里,全部结束之后,一次性把解密

❷ 文本串加密和解密程序

加密解密函数及用法示例http://hi..com/ypxmaomao/blog/item/6361f5d6fb1e8e2606088b32.html

❸ 写一个对文本文件加密的程序和一个解密程序

#include <stdlib.h>
#include<stdio.h>
#define x 4//密钥
/*********定义加密函数**********/
int jiami()
{
FILE *fp1,*fp2; //定义函数指针
char filename[50],ch;
printf("请输入要加密的文件:\n");
scanf("%s",filename) ;
fp1=fopen(filename,"r");
if(fp1==NULL)
{
printf("\n警告!打开文件时出错!\n");
return 0;
} //打开文件失败
// printf("原文件为:\n");
fp2=fopen("jiamihou","w");//新建存放加密后数据的文件jiamihou
if(fp2==NULL)
{
printf("\n警告!打开文件时出错!\n");
return 0;
}
while(!feof(fp1)) //没有到达文件尾,继续读入字符
{
ch=fgetc(fp1); //正确读出原文件
ch=ch+x;//凯萨加密法
//putchar(ch);//显示加密后的文件
fputc(ch,fp2); //将加密后的字符放入文件jiamihou中
}
printf("加密成功!\n");
fclose(fp1);
fclose(fp2);
}
/********定义解密函数*********/
int jiemi()
{
FILE *fp1,*fp2;
char filename[50],ch;
char y;
printf("\n");
printf("请输入要解密的文件:\n");
scanf("%s",filename) ; //要解密的文件名
fp1=fopen(filename,"r");
if(fp1==NULL)
{
printf("\n警告!打开文件时出错!\n");
return 0;
}//打开文件失败
fp2=fopen("jiemihou","w");//新建存放解密后数据的文件jiemihou
if(fp2==NULL)
{
printf("\n警告!打开文件时出错!\n");
return 0;
}
do
{
printf("请输入密码:\n");
scanf("%d",&y) ; //密码
}while(y!=x);
while(!feof(fp1)) //没有到达文件尾,继续读入字符
{
ch=fgetc(fp1); //正确读出原文件
ch=ch-y;//凯萨解密法
//putchar(ch);//显示解密后的文件
fputc(ch,fp2); //将解密后的字符放入文件jiemihou中
}
printf("解密成功!\n");
fclose(fp1);
fclose(fp2);
}
/********定义打开文件********/
int display()
{
FILE *fp;
char filename[50],ch;
printf("\n");
printf("请输入要打开显示的文件:\n");
scanf("%s",filename) ; //要显示的文件名
fp=fopen(filename,"r");
if(fp==NULL)
{
printf("\n警告!打开文件时出错!\n");
return 0;
}//打开文件失败
while(!feof(fp)) //没有到达文件尾,继续读入字符
{
ch=fgetc(fp); //正确读出原文件
putchar(ch);//显示解密后的文件
}
printf("\n");
fclose(fp);
}
/********主函数*************/
void main()
{
int n;
do
{
printf("操作方式如下:\n");
printf("1为加密操作\n");
printf("2为解密操作\n");
printf("3为显示操作\n");
printf("0为退出操作\n");
printf("**************************************");
printf("\n请选择您的操作:\n");
scanf("%d",&n);
switch(n)
{
case 0:
break;
case 1:
printf("\n您选择了加密操作\n");
jiami();
break;
case 2:
printf("\n您选择了解密操作\n");
jiemi();
break;
case 3:
printf("您选择了显示文件操作\n");
display();
break;
default:
printf("请在0-3之间选择\n");
}
}while(n!=0);
printf("您选择了退出操作\n");
system("pause");//系统暂停,输出“按任意键继续...”.包含在<stdlib.h>中
}

❹ 编写程序,将一个长度不超过100的字符串加密和解密。密码规则:用原来的字母后面第4个字母代替原来的字母

首先是赋值错误,应该scanf("%s",str);
而不是把str[100]当首地址

其次输入字符长度不一定是100,所以字符长度也要不确定,所以在判断的时候应该
char lock(char str[])
{
int i;
for(i=0;i<=100&&str[i]!='\0';i++)
。。。

char unlock(char str[])
{
int j;
for(j=0;j<=100&&str[j]!='\0';j++)
。。。

❺ 如何对文本/字符串加密解密

加密解密的算法都没错,错的是解密程序里的文件操作方法。rewind(fp)没有必要。因为fp已经被close了。一般不推荐同时对一个文件又读又写,因为这样会导致很多缓冲区同步的问题。比如:fputc()和getc()之间,必须要调用fflush(fp);即使这样,还是会有问题。比如回车,getc()可能会返回两个字符,\n和\a。但是用fputc()写入的时候,分别写入\n和\a会把第二行第一个字符覆盖掉。正确的做法是:先把解密的数据保存到字符串里,全部结束之后,一次性把解密完的字符串写到文件里去。voidmain(){charch,name[30];charcontent[1000];intn=0;FILE*fp;printf("name:\a");gets(name);fp=fopen(name,"r+");if(fp==NULL){printf("Nofile:%s!\n\a",name);return;}ch=getc(fp);while(ch!=EOF){if((isalpha(ch))!=0){if((ch>='a'&&ch='A'&&ch<='D'))ch=ch+22;elsech=ch-4;}content[n++]=ch;ch=getc(fp);//ch=getc(fp);}content[n]=0;rewind(fp);fprintf(fp,"%s",content);fclose(fp);printf("%sok\a\n",name);printf("content:%s\n",content);printf("\n");}

❻ VB 加密与解密的程序代码

加密:

PrivateFunction JiaMi(ByVal varPass As String) As String '参数varPass是需要加密的文本内容

Dim varJiaMi As String * 20

Dim varTmp As Double

Dim strJiaMi As String

Dim I

For I = 1 To Len(varPass)

varTmp = AscW(Mid$(varPass, I, 1))

varJiaMi = Str$(((((varTmp * 1.5) / 5.6) * 2.7) * I))

strJiaMi = strJiaMi & varJiaMi

NextI

JiaMi = strJiaMi

EndFunction

解密函数:

PrivateFunction JieMi(ByVal varPass As String) As String '参数varPass是需要解密的密文内容

Dim varReturn As String * 20

Dim varConvert As Double

Dim varFinalPass As String

Dim varKey As Integer

Dim varPasslenth As Long

varPasslenth = Len(varPass)

For I = 1 To varPasslenth / 20

varReturn = Mid(varPass, (I - 1) * 20 + 1, 20)

varConvert = Val(Trim(varReturn))

varConvert = ((((varConvert / 1.5) * 5.6) / 2.7) / I)

varFinalPass = varFinalPass & ChrW(Val(varConvert))

NextI

JieMi = varFinalPass

EndFunction

(6)文本串加密和解密程序扩展阅读:

注意事项

编写加密程序,将用户输入的一个英文句子加密为加密字符串,然后输出加密字符串。假设句子长度不超过100个字符。

根据给定的句子加密函数原型SentenceEncoding,编写函数SentenceEncoding调用给定的字符加密函数CharEncoding完成句子加密。

然后,编写主程序提示用户输入英文句子,然后调用函数SentenceEncoding对句子加密,最后输出加密后的句子。

字符加密规则为大写字母和小写字母均加密为其补码, 我们定义ASCII码值相加为’A’+’Z’即155的两个大写字母互为补码,ASCII码值相加为’a’+’z’即219的两个小写字母互为补码。

空格用@代替,句号以#代替,其它字符用句点代替。

函数原型:

void SentenceEncoding(char *soure,char *code);

功能:对待加密字符串source加密后保存加密字符串到code.

参数:char *soure,指向待加密句子的字符串指针;

char *code 指向加密字符串的字符串指针;

字符加密函数代码。

❼ 帮我做一个给一段字符串加密并解密的c++程序。用指针做!

#include <iostream>
#include <conio.h>
#include <string>
using namespace std;

char* Colik(char *str)
{
char* strr;
strr = str;
for(int i=0;i<strlen(strr);i++)
{
*(strr+i) += 1;

}

return strr;

}

char* golik(char *str)
{
char* strr;
strr = str;
for(int i=0;i<strlen(strr);i++)
{
*(strr+i) -= 1;

}

return strr;
}

void main()
{
int t;
char* str = new char[];
cout<<"请输入您要操作的字符串:";
cin>>str;
cout<<"下面为您可以执行的操作:"<<endl<<"1)加密"<<endl<<"2)解密"<<endl<<"请输入你要执行的操作序号:";
do{
cin>>t;
if(t == 1)cout<<"您加密后的字符串为:"<<Colik(str)<<endl;
else if(t == 2)cout<<"您解密后的字符串为:"<<golik(str)<<endl;
else cout<<"错误!没有这项操作!请重新输入:";
}while(t!=1&&t!=2);

getch();
}
简单的加密。

❽ C++或C文件加密解密程序

在下面程序的基础上改写一下算法。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

void encfile(char *in_filename,char *pwd,char *out_filename);/*对文件进行加密的具体函数*/

int main(int argc,char *argv[])/*定义main()函数的命令行参数*/
{
char in_filename[30];/*用户输入的要加密的文件名*/
char out_filename[30]; /*用户输入加密后保存的文件名*/
char pwd[8];/*用来保存密码*/
if(argc!=4){/*容错处理*/
printf("\nPlease input In-filename:\n");
gets(in_filename);/*得到要加密的文件名*/
printf("Please input your Password:\n");
gets(pwd);/*得到密码*/
printf("Please input Out-filename:\n");
gets(out_filename);/*得到加密后你要的文件名*/
encfile(in_filename,pwd,out_filename);/*函数调用*/
}
else{/*如果命令行参数正确,便直接运行程序*/
strcpy(in_filename,argv[1]);
strcpy(pwd,argv[2]);
strcpy(out_filename,argv[3]);
encfile(in_filename,pwd,out_filename);
}
system("pause");
return 0;
}

/*加密子函数开始*/
void encfile(char *in_filename,char *pwd,char *out_file)
{
FILE *fp1,*fp2;
register char ch;
int j=0;
int j0=0;
fp1=fopen(in_filename,"rb");/*以二进制只读方式打开要加密的文件*/
if(fp1==NULL){
printf("cannot open in-file.\n");
exit(1);/*如果不能打开要加密的文件,便退出程序*/
}
fp2=fopen(out_file,"wb");
if(fp2==NULL){
printf("cannot open or create out-file.\n");
exit(1);/*如果不能建立加密后的文件,便退出*/
}
while(pwd[++j0]);
ch=fgetc(fp1);
/*加密算法开始*/
while(!feof(fp1)){
fputc(ch^pwd[j>=j0?j=0:j++],fp2);/*异或后写入fp2文件*/
ch=fgetc(fp1);
}
fclose(fp1);/*关闭源文件*/
fclose(fp2);/*关闭目标文件*/
}

❾ C语言设计一个简单的加密解密程序

C语言设计一个简单的加密解密程序如下:
加密程序代码:
#include<stdio.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>=32&&c<=126)
{
c=c-32;
c=126-c;
}
if(c!=-1)
fprintf(fp2,"%c",c);
}
while(c!=-1);
}
解密程序代码:
#include<stdio.h>
#include<string.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>=32&&c<=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的语法
,,比如:
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;
}
如果想看一些好一点的加密算法
,我这里有一些,联系我发给你
,,

阅读全文

与文本串加密和解密程序相关的资料

热点内容
彩票手机版本挂机软件 浏览:326
网上安装xp系统 浏览:965
codetank代码 浏览:737
企业网站推广的方法是什么 浏览:226
正常手机数据网络多少正常 浏览:76
怎么网络查询电费 浏览:638
数据库中的view 浏览:138
如何一次多选多行数据 浏览:140
苹果手机系统最安全吗 浏览:537
政企大数据 浏览:470
高光荣大数据技术 浏览:538
江苏美德好少年电子文件的内容 浏览:12
桌面文件夹显示四个 浏览:374
电脑重新系统后桌面文件恢复 浏览:831
哪个短视频app可以放大 浏览:770
刷宝app怎么上传作品 浏览:893
少儿编程需准备什么电脑 浏览:945
邻家女孩07版本下载 浏览:350
自学编程哪个程序好 浏览:253
不知道密码怎么撤销工作表保护 浏览:88