XE8 hash

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

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月13日 上午10:42
下一篇 2023年2月13日 上午10:42

相关推荐