⑴ c語言文本文件加密
問題在這里注意加密後的溢出問題 char型字元最大能表示的數字是127 unsigned char則是255
所以用加法加密要注意處理溢出問題不能簡單的加加減減
⑵ 用c++編寫一個簡單的文件加密程序
我自己想寫一個加密的方式
還覺得這個挺難的。
如果真的沒有太高的c++這一塊的基礎的話。
真的是沒法做到,因為代碼比較難寫的。
只能求助於那些摸到水深水淺的那些c++大神們。
之後摸著他(她)們的大腿,然後就說把源代碼的思路原形給我!
⑶ 怎麼給自己寫的程序加密啊
如果你的程序核心模塊不希望被第3方知道,可以在代碼里直接加密,用時解密,或者你有匯編實力,直接將功能模塊寫成SHELLCODE,加密SHELLCODE,需要調用時動態解密。都整個文件加密的可行性比較低
⑷ 高分求用C++寫一道完整的加密程序
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
void encrypt(char *in, char *pwd, char *out)
{
FILE *infile, *outfile;
char ch;
int i=0, PwdLen=0;
if ((infile=fopen(in, "rb"))==NULL)
{
printf("無法打開 %s\n"亂姿, in);
getch();
exit(1);
}
if ((outfile=fopen(out, "wb"))==NULL)
{
printf("無法打開或創建 %s\n", out);
getch();
exit(1);
}
while (pwd[PwdLen++]); //這里用來應付密碼為空擾戚的情況
PwdLen--;
ch=fgetc(infile);
while (!feof(infile))
{
fputc(ch^pwd[i>=PwdLen?i=0:i++], outfile);
ch=fgetc(infile);
}
fclose(infile);
fclose(outfile);
}
int main(int argc, char *argv[])
{
char in[256];
char out[256];
char pwd[256];
if (argc!=4)
{
printf("要加/解緩陪陵密的文件路徑和文件名:\n");
gets(in);
printf("密碼:\n");
gets(pwd);
printf("輸出路徑和文件名:\n");
gets(out);
encrypt(in, pwd, out);
printf("\n\n任務完成!\n\n");
getch();
}
else encrypt(argv[1], argv[2], argv[3]);
return 0;
⑸ C語言設計一個簡單的加密解密程序
C語言設計一個簡單的加密解密程序如下:
加密程序代碼:
#include
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
#include
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);
}
}
⑹ 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
注意事項
編寫加密程序,將用戶輸入的一個英文句子加密為加密字元串,然後輸出加密字元串。假設句子長度不超過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 指向加密字元串的字元串指針;
字元加密函數代碼。