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();
  • 相关阅读:
    icomet研究
    python使用ssdb的队列,用于替换canal+rabbitmq
    最近关于mysql的造型,binlog使用,以及阿里云上线数据处理错误导致被处罚的思考
    删除一个存在的RabbitMQ队列
    检查Rabbitmq中队列及消息个数,还有清空的方法
    Mysql在master上查看有哪些slave
    查看Linux端口的占用及连接情况
    Kettle根据时间戳同步数据实现
    kettle的下载、安装和初步使用(windows平台下)(图文详解)
    golang学习 ----获取URL
  • 原文地址:https://www.cnblogs.com/cb168/p/4686918.html
Copyright © 2011-2022 走看看