zoukankan      html  css  js  c++  java
  • 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();
  • 相关阅读:
    类在编写过程中的一些注意事项
    SDUT 2893-B(DP || 记忆化搜索)
    Microsoft.AlphaImageLoader滤镜解说
    解决网页版权符号模糊不清
    oninput,onpropertychange,onchange的使用方法和差别
    VB.net数据库编程(03):一个SQLserver连接查询的简单样例
    使用WinSetupFromUSB来U盘安装windowsXP(不使用win PE系统)
    ActivityManager
    IP协议
    jni编译non-numeric second argument to `wordlist' function错误
  • 原文地址:https://www.cnblogs.com/cb168/p/4686918.html
Copyright © 2011-2022 走看看