-
大小: 1.56MB文件類型: .rar金幣: 2下載: 1 次發(fā)布日期: 2023-09-01
- 語(yǔ)言: C/C++
- 標(biāo)簽:
資源簡(jiǎn)介
主體部分vc6.0編寫(xiě),界面用了vc2003。很值得學(xué)習(xí)和借鑒

代碼片段和文件信息
#include?“stdafx.h“
#include?“Rijndael.h“
#include?“.\AESEncryption.h“
CAESEncryption::CAESEncryption(void)
{
memset(KeyData?0?16);
memcpy(KeyData“1234567890123456“?16);
/* 調(diào)試
char?In[32];
char?Out[32];
memcpy(In“a\0aaaaaaaaaaaaaba\0aaaaaaaaaaaaab“32);
DWORD?nSize?=?32;
Encryption(In32Out&nSize);
memset(In?0?32);
Decryption(Out?32?In);
*/
}
CAESEncryption::~CAESEncryption(void)
{
}
//加密函數(shù)
bool?CAESEncryption::Encryption(IN?LPVOID?lpData?IN?DWORD?nByte?OUT?LPVOID?lpOutData?IN?OUT?DWORD*?nSize)
{
CRijndael?aes;
char*?lpInData?=?NULL;
char?lpInBlock[16]?=?{0};
char?lpOutBlock[16]?=?{0};
DWORD?nInBufferSize?=?nByte?%?16;
DWORD?nBlockCount?=?0;
char*?lpOutPointer?=?NULL;
//計(jì)算大小,開(kāi)辟16的倍數(shù)的內(nèi)存
if?(nInBufferSize?!=?0)?{
nInBufferSize?=?((nByte?/?16)?+?1)?*?16;
}?else?{
nInBufferSize?=?nByte;
}
nBlockCount?=?nInBufferSize?/?16;
//計(jì)算輸出緩沖區(qū)是否夠大
if?(*nSize? *nSize?=?nInBufferSize;
return?false;
}
*nSize?=?nInBufferSize;
//拷貝需要加密的數(shù)據(jù)
lpInData?=?new?char[nInBufferSize];
memset(lpInData?0?nInBufferSize);
memcpy(lpInData?lpData?nByte);
memset(lpOutData?0?*nSize);
lpOutPointer?=?(char*)lpOutData;
//設(shè)置加密密鑰
aes.MakeKey(KeyData?CRijndael::sm_chain0);
//分塊加密
for?(DWORD?i?=?0;?i? {
memset(lpInBlock?0?16);
memset(lpOutBlock?0?16);
memcpy(lpInBlock?lpInData?+?i?*?16?16);
aes.EncryptBlock(lpInBlock?lpOutBlock);
//拷貝到輸出緩沖區(qū)
memcpy(lpOutPointer?lpOutBlock?16);
//移動(dòng)指針
lpOutPointer?+=?16;
}
return?true;
}
//解密函數(shù)
bool?CAESEncryption::Decryption(IN?LPVOID?lpData?IN?DWORD?nByte?OUT?LPVOID?lpOutData)
{
CRijndael?aes;
DWORD?n?=?nByte?%?16;
char?cInBlock[16];
char?cOutBlock[16];
char*?lpOutPointer?=?NULL;
//判斷緩沖區(qū)長(zhǎng)度是否符合?16?的倍數(shù)
if?(n?!=?0)?{
return?false;
}
//計(jì)算塊的數(shù)量
DWORD?nBlockCount?=?nByte?/?16;
//輸出指針
lpOutPointer?=?(char*)lpOutData;
//設(shè)置加密密鑰
aes.MakeKey(KeyData?CRijndael::sm_chain0);
//分塊解密
for?(DWORD?i?=?0;?i? {
memset(cInBlock?0?16);
memset(cOutBlock?0?16);
memcpy(cInBlock?(LPBYTE)lpData?+?i?*?16?16);
aes.DecryptBlock(cInBlock?cOutBlock);
memcpy(lpOutPointer?cOutBlock?16);
lpOutPointer?+=?16;
}
return?true;
}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????2446??2008-06-18?18:01??捆綁機(jī)\捆綁機(jī)\Binder\AESEncryption.cpp
?????文件????????383??2008-06-18?17:42??捆綁機(jī)\捆綁機(jī)\Binder\AESEncryption.h
?????文件???????1452??2008-06-09?13:03??捆綁機(jī)\捆綁機(jī)\Binder\Binder.cpp
?????文件????????437??2008-06-09?13:03??捆綁機(jī)\捆綁機(jī)\Binder\Binder.h
?????文件???????8031??2008-06-18?18:49??捆綁機(jī)\捆綁機(jī)\Binder\Binder.rc
?????文件???????5276??2008-06-18?16:25??捆綁機(jī)\捆綁機(jī)\Binder\Binder.vcproj
?????文件??????16930??2008-06-18?18:50??捆綁機(jī)\捆綁機(jī)\Binder\BinderDlg.cpp
?????文件???????2102??2008-06-18?18:27??捆綁機(jī)\捆綁機(jī)\Binder\BinderDlg.h
?????文件??????14814??2008-06-16?18:17??捆綁機(jī)\捆綁機(jī)\Binder\Hyperli
?????文件???????3711??2008-02-01?10:55??捆綁機(jī)\捆綁機(jī)\Binder\Hyperli
?????文件???????4635??2008-06-18?18:07??捆綁機(jī)\捆綁機(jī)\Binder\IconDlg.cpp
?????文件????????854??2008-06-18?15:34??捆綁機(jī)\捆綁機(jī)\Binder\IconDlg.h
?????文件???????2800??2008-06-09?13:03??捆綁機(jī)\捆綁機(jī)\Binder\ReadMe.txt
?????文件????????404??2008-06-09?16:02??捆綁機(jī)\捆綁機(jī)\Binder\removejunk.bat
?????文件????????596??2008-06-09?13:07??捆綁機(jī)\捆綁機(jī)\Binder\res\1.xm
?????文件??????19942??2007-05-01?13:34??捆綁機(jī)\捆綁機(jī)\Binder\res\Binder.ico
?????文件??????21630??2003-04-01?19:36??捆綁機(jī)\捆綁機(jī)\Binder\res\Binder.ico.bak
?????文件????????362??2008-06-09?13:03??捆綁機(jī)\捆綁機(jī)\Binder\res\Binder.rc2
?????文件???????1078??2006-10-05?10:25??捆綁機(jī)\捆綁機(jī)\Binder\res\main.ico
?????文件???????1916??2008-06-16?20:17??捆綁機(jī)\捆綁機(jī)\Binder\resource.h
?????文件??????58904??2008-06-18?16:34??捆綁機(jī)\捆綁機(jī)\Binder\Rijndael.cpp
?????文件???????6150??2008-06-18?16:34??捆綁機(jī)\捆綁機(jī)\Binder\Rijndael.h
?????文件????????133??2008-06-09?15:41??捆綁機(jī)\捆綁機(jī)\Binder\stdafx.cpp
?????文件???????1651??2008-06-17?19:22??捆綁機(jī)\捆綁機(jī)\Binder\stdafx.h
?????文件?????115718??2008-06-16?18:16??捆綁機(jī)\捆綁機(jī)\Binder\zip\zip.cpp
?????文件??????10044??2005-07-28?01:09??捆綁機(jī)\捆綁機(jī)\Binder\zip\zip.h
?????文件?????376832??2010-04-23?23:24??捆綁機(jī)\捆綁機(jī)\Binder.exe
?????文件??????????2??2008-06-16?17:37??捆綁機(jī)\捆綁機(jī)\VC6\Studio\1.txt
?????文件???????2898??2010-04-23?23:15??捆綁機(jī)\捆綁機(jī)\VC6\Studio\AESEncryption.cpp
?????文件????????383??2008-06-18?17:42??捆綁機(jī)\捆綁機(jī)\VC6\Studio\AESEncryption.h
............此處省略46個(gè)文件信息
評(píng)論
共有 條評(píng)論