導航:首頁 > 編程語言 > 文本串加密和解密程序

文本串加密和解密程序

發布時間: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;
}
如果想看一些好一點的加密演算法
,我這里有一些,聯系我發給你
,,

閱讀全文

與文本串加密和解密程序相關的資料

熱點內容
特工夫妻電影叫什麼名字 瀏覽:76
手機數據天線如何檢測好壞 瀏覽:815
特工小孩 瀏覽:398
做網路滲透是什麼意思 瀏覽:646
手機辦公有哪些免費app 瀏覽:533
esj輕小說網站怎麼下載小說 瀏覽:735
電影院和女朋友牽手的圖片 瀏覽:20
無毒看片的網站 瀏覽:86
電影電視劇在線免費網站 瀏覽:897
重裝系統後舊系統文件 瀏覽:413
word中表格如何清除文件格式 瀏覽:686
填空什麼的網路 瀏覽:214
可以看電影院上映的電影的網站 瀏覽:3
香港蘋果手機保修政策 瀏覽:950
文件怎麼去掉水印 瀏覽:13
有個國外大尺度電影孕婦分娩的叫什麼 瀏覽:467
怎麼停止資料庫的服務和進程 瀏覽:463
征途裝備靈魂鎖鏈物防11怎樣升級 瀏覽:56
桌面的文件怎麼排成一排 瀏覽:846

友情鏈接