當前位置:編程學習大全網 - 編程語言 - VC如何加密和解密ini文本文件

VC如何加密和解密ini文本文件

C++加密和解密函數及使用示例

//常數

#定義C1 52845

#定義C2 22719

cs string encrypt(cs string,word key)//加密函數

{

CString結果,str

int i,j;

結果= S;//初始化結果字符串

for(I = 0;我& lts . GetLength();I++) //依次對字符串中的每個字符進行操作。

{

結果。SetAt(我,s.getat(i)^(key>;& gt8));//將密鑰移位,並與字符進行異或運算。

Key =((字節)結果。GetAt(I)+Key)* c 1+C2;//生成下壹個密鑰

}

s =結果;//保存結果

結果。empty();//清除結果

for(I = 0;我& lts . GetLength();I++) //轉換加密結果。

{

j=(字節)S . GetAt(I);//提取字符

//將字符轉換成兩個字母保存。

str = " 12 ";//將str長度設置為2

海峽。SetAt(0,65+j/26);//如果把65換成更大的數,比如256,密文會變成亂碼,效果會更好。相應的,解密位也要改成同壹個數。

海峽。SetAt(1,65+j % 26);

result+= str;

}

返回結果;

}

cstring decrypt(cstring,word key)//解密函數

{

CString結果,str

int i,j;

結果。empty();//清除結果

for(I = 0;我& lts . GetLength()/2;I++) //以兩個字母為壹組處理字符串。

{

j =((BYTE)S . GetAt(2 * I)-65)* 26;);//相應的,解密位也要改成同壹個數。

j+=(BYTE)S . GetAt(2 * I+1)-65;

str = " 1 ";//將str長度設置為1。

海峽。SetAt(0,j);

result+= str;//追加字符以恢復字符串

}

s =結果;//保存中間結果

for(I = 0;我& lts . GetLength();I++) //依次對字符串中的每個字符進行操作。

{

結果。SetAt(我,(byte)s.getat(i)^(key>;& gt8));//將密鑰移位,並與字符進行異或運算。

Key =((BYTE)S . GetAt(I)+Key)* c 1+C2;//生成下壹個密鑰

}

返回結果;

}

使用

CString text = _ T(" 192.168.18.14 ");//要加密的字符串

WORD key = 1314;//鍵

CString jiami=Encrypt(文本,密鑰);//加密

AfxMessageBox(_T("密文:")+jiami);

CString解蜜=Decrypt(jiami,key);//解密

AfxMessageBox(_ T(" original:")+解蜜);

  • 上一篇:南充西充的教學質量怎麽樣
  • 下一篇:發布全新戰略,奔馳還能繼續領先嗎?
  • copyright 2024編程學習大全網