[標題]:使用"異或"簡單加密的實現
[時間]:2009-4-19
[摘要]:需要使用加密算法加密密碼,但是面對DES等算法,實現起來還是有難度的。并且自己的應用也不需要很強的加密算法,只要不直接使用明文就可以了。所以,實現了用"異或"簡單加密密碼。加密解密都是使用同一算法。要提醒的是,這種加密并不可靠,而且極易被破解。
[關鍵字]:異或,加密,解密,DES,密碼,簡單,算法
[環境]:VC6
[作者]:Winty (wintys@gmail.com)
[正文]:
加密原理:
a^b => c , c^b => a
一次"異或"之后,明文變成密文。
兩次"異或"之后,密文被解密成明文。
那么,a就是需要加密的明文,b就是密鑰,c就是密文。
void CTestDlg::OnBtnEncrypt()
{
CString strText = "password";
CString strSecret;//密文
CString strPlain;//解密后的明文
strSecret = Encrypt(strText);
AfxMessageBox(strSecret);
strPlain = Encrypt(strSecret);
AfxMessageBox(strPlain);
//解密是否正確
if(strText.Compare(strPlain) == 0)
AfxMessageBox("OK");
}
CString CTestDlg::Encrypt(const CString &strText)
{
CString strContent(strText);
CString strKey = "It's kind of you to visit me!!";//Length:30chars
TCHAR t;
TCHAR k;
//加密內容最大長度為30,多于30字符的不加密
for(int i = 0 ; i < strContent.GetLength() && i < strKey.GetLength(); i++){
t = strContent.GetAt(i);
k = strKey.GetAt(i);
t ^= k;//與Key異或加密
strContent.SetAt(i , t);
}
return strContent;
}
posted on 2009-04-19 19:30
天堂露珠 閱讀(1030)
評論(0) 編輯 收藏 所屬分類:
C++