本文目錄一覽:
- 1、如何用C語言對文件進行加密和解密?急求………………….
- 2、C語言怎樣給文件加密
- 3、C語言怎麼加密字符
- 4、如何用C語言對文件進行加密和解密?
- 5、關於用C語言對文件進行加密和解密
- 6、C語言 簡單對字母進行加密
如何用C語言對文件進行加密和解密?急求………………….
文件分為文本文件和二進制文件。加密方法也略有不同。
1、文本文件
加密的主要是文本的內容,最簡單的方法就是修改文檔的內容,比如1.txt中的文件內容:
abcd
只要給每一個字符+1,就可以實現加密。文件內容即會變為
bcde
2、二進制文件加密
二進制文件加密也就是對應用程序加密,需要理解可執行文件格式,比如Windows平台的Exe文件它是PE結構,Linux上的可執行文件是ELF結構,要對這樣的程序進行加密,實際上是開發一種叫做「殼」的程序,這種程序的開發,需要將紮實的底層基礎,同時也需要對軟件加密解密有細緻的理解,比如流行的vmprotect、z殼以及早些年的upx殼、aspack等等。
3、無論哪種加密都牽涉到文件操作的問題,使用C語言進行文件操作時,極少使用C標準庫中的I/O函數,大多數使用操作系統提供的內存文件映射相關的API函數,有興趣,可以搜索相關的資料。
C語言怎樣給文件加密
這個加密有簡單的,有複雜的。要是簡單的就直接選擇文件中的某些字段,將某些字段進行1定的轉換或在文件中位置的變更等。也能夠將其中的每一個2進制讀取,然落後行1定的運算後再存儲,到達加密的效果。最後再依照1定的逆操作,恢復原來的文件,到達解密的效果。大致思路就是這樣的,具體就看你的加解密的算法複雜與否了!舉個非常簡單的例子,可以將讀取的某個數與1個你自己知道的固定的數做「異或」運算,解密的時候,你再次和這個數做「異或」運算,就能夠恢復原來的那個數。這就是1種簡單的加密算法,看似簡單,不過卻比較經常使用,由於,參與異或運算的值只有你自己知道。
C語言怎麼加密字符
我沒注意只要小寫,我寫的是大小寫都可以的,另外附送輸入驗證。
#include stdio.h
#include string.h
int main()
{
char str[]=”00000″,str2[]=”00000″,*p=str,*p2=str2;
printf(“輸入5個字母:”);
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語言對文件進行加密和解密?
對於加密要求不高的完全可以自己定義規則來進行加密。這種加密是很簡單很自由的,例如你在存文件的時候可以將文件中的每個字符都加上一個數,然後讀取該文件的時候再每個字符相應地減去那個數,即可實現就簡單的加密,這樣你儲存的文件看上去就是亂碼了。只是這個規則太簡單,規則你可以自己定,加密與解密對着來就行了。
下面程序用異或操作對文件進行加密和解密
/******************設計思路******************/
//根據用戶輸入的加密/機密密碼,
//每次都拿原文件和密碼等長度的一個字符串和密碼
//對應元素異或進行加密/解密
//另外因為是用異或方法,所以加密和解密就是同一個程序
//即按照同樣的加密即是對文件的解密
#include
#include
#include
#include
#include
charfilename[256];//原文件
charpassword[256];//加密/解密密碼
constcharfilenametemp[]=”temp15435255435325432543.temp”;//加密/解密中間文件
voidinputpass(char*pass);//密碼輸入以”******”顯示
voidmain(){
FILE*fp;//加密/解密的文件
FILE*fptemp;//加密/解密過程臨時文件
intpwdlen;//密碼長度
inti=0;//計數器
charch=0;//讀入的字符
printf(“請輸入要加密/解密的文件名(全路徑名):\n”);
gets(filename);
if((fp=fopen(filename,”rb”))==NULL){
printf(“找不到文件%s\n”,filename);
exit(1);
}//if
printf(“請輸入要加密/解密的密碼:\n”);
inputpass(password);
pwdlen=strlen(password);
if(pwdlen==0){
printf(“密碼不能為空,加密/解密失敗\n”);
exit(1);
}//if
fptemp=fopen(filenametemp,”wb”);//打開中間文件
while(1){
ch=fgetc(fp);//從原文件讀入一個字符
if(feof(fp)){//已經讀到文件尾
break;//退出循環
}
ch^=password[i++];//對原字符和密碼進行異或操作
fputc(ch,fptemp);//將異或結果寫入中間文件
if(i==pwdlen){//使得原文件每和密碼長度相同的固定長度異或加密
i=0;
}
}//while
fclose(fp);//關閉打開原文件
fclose(fptemp);//關閉打開中間文件
remove(filename);//刪除原文件
rename(filenametemp,filename);//將中間文件重命名為原文件
printf(“加密/解密成功\n”);//至此加密/解密成功
}
//密碼輸入以”******”顯示
voidinputpass(char*pass){
inti=0;
charc;
while(isprint(c=getch())){
pass[i++]=c;
//printf(“*”);
}
pass[i]=’\0′;
printf(“\n”);
}
關於用C語言對文件進行加密和解密
ch=ch^*(pwd+i); //對讀取的一個字符,進行異或
重點是這,,,,,,就是使用密碼,對源文件逐byte異或、
if(i9){
i=0;
}
密碼也循環使用。
~~~~~~~~~~~~
C語言 簡單對字母進行加密
1、在我們的編輯頁面輸入以下代碼。
2、需要將其分成兩部分進行代碼的編寫,因為我們通過觀察會發現一部分是順着算,一部分是逆着算,所以我們必須要分兩部分來完成源代碼的編輯。
3、先對「將字母A變成字母G,a變成g,B變成H,b變成h」這一部分進行源代碼的編寫。
4、再對第二個部分「U變成A,V變成B」來進行編寫,在整個程序,我們都可以直接用IF判斷語句來進行判斷輸出結果即可。
5、最後,我們的編代碼編寫完成後,點擊「運行」,彈出輸入頁面之後,在輸入面板輸入任意一個電文字符,然後點擊回車鍵即可得出我們的對應的相應密碼。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/304154.html