c++builder xe8 hash calc
md5、sha256、sha384、sha512
file and string
sha256、sha384、sha512 must call load function .
system function not use any third party component.
- New in XE8! New System.Hash RTL unit, with hash functions to support the new HTTP framework
Caption:= System.Hash.THashMD5.GetHashString('ww');
id...
IdHashMessageDigest.pas
Idsslopensslheaders::Load();
//string
void __fastcall TFrmEncrypt::btnHashStringAsHexClick(TObject *Sender)
{
String instr = LabeledEdit1->Text;
TIdHashMessageDigest5 *md5 = new TIdHashMessageDigest5();
LabeledEdit2->Text = md5->HashStringAsHex(instr);
delete md5;
TIdHashCRC32 *crc = new TIdHashCRC32();
LabeledEdit3->Text = crc->HashStringAsHex(instr);
delete crc;
TIdHashSHA1 *sha1 = new TIdHashSHA1();
LabeledEdit4->Text = sha1->HashStringAsHex(instr);
delete sha1;
TIdHashSHA224 *sha224 = new TIdHashSHA224();
LabeledEdit5->Text = sha224->HashStringAsHex(instr);
delete sha224;
TIdHashSHA256 *sha256 = new TIdHashSHA256();
bool bf = sha256->IsAvailable();
LabeledEdit6->Text = sha256->HashStringAsHex(instr);
delete sha256;
TIdHashSHA384 *sha384 = new TIdHashSHA384();
LabeledEdit7->Text = sha384->HashStringAsHex(instr);
delete sha384;
TIdHashSHA512 *sha512 = new TIdHashSHA512();
LabeledEdit8->Text = sha512->HashStringAsHex(instr);
delete sha512;
}
//stream
void __fastcall TFrmEncrypt::btnCalcClick(TObject *Sender)
{
String fileName(LabeledEdit1->Text);
TFileStream *fs;
fs = new TFileStream(fileName, fmOpenRead | fmShareDenyWrite);
TIdHashMessageDigest5 *md5 = new TIdHashMessageDigest5();
LabeledEdit2->Text = md5->HashStreamAsHex(fs);
delete md5;
const __int64 Istep = 0;
fs->Seek(Istep, soBeginning);
TIdHashCRC32 *crc = new TIdHashCRC32();
LabeledEdit3->Text = crc->HashStreamAsHex(fs);
delete crc;
fs->Seek(Istep, soBeginning);
TIdHashSHA1 *sha1 = new TIdHashSHA1();
LabeledEdit4->Text = sha1->HashStreamAsHex(fs);
delete sha1;
fs->Seek(Istep, soBeginning);
TIdHashSHA224 *sha224 = new TIdHashSHA224();
LabeledEdit5->Text = sha224->HashStreamAsHex(fs);
delete sha224;
fs->Seek(Istep, soBeginning);
TIdHashSHA256 *sha256 = new TIdHashSHA256();
LabeledEdit6->Text = sha256->HashStreamAsHex(fs);
delete sha256;
fs->Seek(Istep, soBeginning);
TIdHashSHA384 *sha384 = new TIdHashSHA384();
LabeledEdit7->Text = sha384->HashStreamAsHex(fs);
delete sha384;
fs->Seek(Istep, soBeginning);
TIdHashSHA512 *sha512 = new TIdHashSHA512();
LabeledEdit8->Text = sha512->HashStreamAsHex(fs);
delete sha512;
delete fs;
}
Idsslopensslheaders::Unload();
原文链接: https://www.cnblogs.com/cb168/p/4686918.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/219907
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!