AES加密算法Delphi源码.docx
- 文档编号:1904221
- 上传时间:2022-10-25
- 格式:DOCX
- 页数:81
- 大小:28.37KB
AES加密算法Delphi源码.docx
《AES加密算法Delphi源码.docx》由会员分享,可在线阅读,更多相关《AES加密算法Delphi源码.docx(81页珍藏版)》请在冰豆网上搜索。
AES加密算法Delphi源码
AES加密算法(Delphi源码)
AES加密算法源码
unitElAES;
interface
uses
Classes,SysUtils;
type
EAESError=class(Exception);
PInteger=^Integer;
TAESBuffer=array[0..15]ofbyte;
TAESKey128=array[0..15]ofbyte;
TAESKey192=array[0..23]ofbyte;
TAESKey256=array[0..31]ofbyte;
TAESExpandedKey128=array[0..43]oflongword;
TAESExpandedKey192=array[0..53]oflongword;
TAESExpandedKey256=array[0..63]oflongword;
PAESBuffer=^TAESBuffer;
PAESKey128=^TAESKey128;
PAESKey192=^TAESKey192;
PAESKey256=^TAESKey256;
PAESExpandedKey128=^TAESExpandedKey128;
PAESExpandedKey192=^TAESExpandedKey192;
PAESExpandedKey256=^TAESExpandedKey256;
//Keyexpansionroutinesforencryption
procedureExpandAESKeyForEncryption(constKey:
TAESKey128;
varExpandedKey:
TAESExpandedKey128);overload;procedureExpandAESKeyForEncryption(constKey:
TAESKey192;
varExpandedKey:
TAESExpandedKey192);overload;procedureExpandAESKeyForEncryption(constKey:
TAESKey256;
varExpandedKey:
TAESExpandedKey256);overload;
//Blockencryptionroutines
procedureEncryptAES(constInBuf:
TAESBuffer;constKey:
TAESExpandedKey128;
varOutBuf:
TAESBuffer);overload;
procedureEncryptAES(constInBuf:
TAESBuffer;constKey:
TAESExpandedKey192;
varOutBuf:
TAESBuffer);overload;
procedureEncryptAES(constInBuf:
TAESBuffer;constKey:
TAESExpandedKey256;
varOutBuf:
TAESBuffer);overload;
//Streamencryptionroutines(ECBmode)
procedureEncryptAESStreamECB(Source:
TStream;Count:
cardinal;
constKey:
TAESKey128;Dest:
TStream);overload;
procedureEncryptAESStreamECB(Source:
TStream;Count:
cardinal;
constExpandedKey:
TAESExpandedKey128;Dest:
TStream);overload;
procedureEncryptAESStreamECB(Source:
TStream;Count:
cardinal;
constKey:
TAESKey192;Dest:
TStream);overload;
procedureEncryptAESStreamECB(Source:
TStream;Count:
cardinal;
constExpandedKey:
TAESExpandedKey192;Dest:
TStream);overload;
procedureEncryptAESStreamECB(Source:
TStream;Count:
cardinal;
constKey:
TAESKey256;Dest:
TStream);overload;
procedureEncryptAESStreamECB(Source:
TStream;Count:
cardinal;
constExpandedKey:
TAESExpandedKey256;Dest:
TStream);overload;
//Streamencryptionroutines(CBCmode)
procedureEncryptAESStreamCBC(Source:
TStream;Count:
cardinal;
constKey:
TAESKey128;constInitVector:
TAESBuffer;Dest:
TStream);overload;procedureEncryptAESStreamCBC(Source:
TStream;Count:
cardinal;
constExpandedKey:
TAESExpandedKey128;constInitVector:
TAESBuffer;
Dest:
TStream);overload;
procedureEncryptAESStreamCBC(Source:
TStream;Count:
cardinal;
constKey:
TAESKey192;constInitVector:
TAESBuffer;Dest:
TStream);overload;procedureEncryptAESStreamCBC(Source:
TStream;Count:
cardinal;
constExpandedKey:
TAESExpandedKey192;constInitVector:
TAESBuffer;
Dest:
TStream);overload;
procedureEncryptAESStreamCBC(Source:
TStream;Count:
cardinal;
constKey:
TAESKey256;constInitVector:
TAESBuffer;Dest:
TStream);overload;procedureEncryptAESStreamCBC(Source:
TStream;Count:
cardinal;
constExpandedKey:
TAESExpandedKey256;constInitVector:
TAESBuffer;
Dest:
TStream);overload;
//Keytransformationroutinesfordecryption
procedureExpandAESKeyForDecryption(varExpandedKey:
TAESExpandedKey128);overload;procedureExpandAESKeyForDecryption(constKey:
TAESKey128;
varExpandedKey:
TAESExpandedKey128);overload;
procedureExpandAESKeyForDecryption(varExpandedKey:
TAESExpandedKey192);overload;procedureExpandAESKeyForDecryption(constKey:
TAESKey192;
varExpandedKey:
TAESExpandedKey192);overload;
procedureExpandAESKeyForDecryption(varExpandedKey:
TAESExpandedKey256);overload;procedureExpandAESKeyForDecryption(constKey:
TAESKey256;
varExpandedKey:
TAESExpandedKey256);overload;
//Blockdecryptionroutines
procedureDecryptAES(constInBuf:
TAESBuffer;constKey:
TAESExpandedKey128;
varOutBuf:
TAESBuffer);overload;
procedureDecryptAES(constInBuf:
TAESBuffer;constKey:
TAESExpandedKey192;
varOutBuf:
TAESBuffer);overload;
procedureDecryptAES(constInBuf:
TAESBuffer;constKey:
TAESExpandedKey256;
varOutBuf:
TAESBuffer);overload;
//Streamdecryptionroutines(ECBmode)
procedureDecryptAESStreamECB(Source:
TStream;Count:
cardinal;
constKey:
TAESKey128;Dest:
TStream);overload;
procedureDecryptAESStreamECB(Source:
TStream;Count:
cardinal;
constExpandedKey:
TAESExpandedKey128;Dest:
TStream);overload;
procedureDecryptAESStreamECB(Source:
TStream;Count:
cardinal;
constKey:
TAESKey192;Dest:
TStream);overload;
procedureDecryptAESStreamECB(Source:
TStream;Count:
cardinal;
constExpandedKey:
TAESExpandedKey192;Dest:
TStream);overload;
procedureDecryptAESStreamECB(Source:
TStream;Count:
cardinal;
constKey:
TAESKey256;Dest:
TStream);overload;
procedureDecryptAESStreamECB(Source:
TStream;Count:
cardinal;
constExpandedKey:
TAESExpandedKey256;Des
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AES 加密算法 Delphi 源码