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();
  • 相关阅读:
    nginx 启动报错 “/var/run/nginx/nginx.pid" failed” 解决方法
    FastDFS+Nginx搭建Java分布式文件系统
    如何优雅使用Sublime Text3(Sublime设置豆沙绿背景色和自定义主题)
    HTTP请求/响应报文结构
    自学编程你得先看看这篇,你能收获很多
    年薪50W京东软件测试工程师的成长路——我们都曾一样迷茫
    学会Python除了不能生孩子,其他的都能做。
    面试题千变万化,为什么总是会问MySQL?
    要做有灵魂的程序员!!
    软件测试基础自学之测试基础理论,先看完这篇你再做测试
  • 原文地址:https://www.cnblogs.com/cb168/p/4686918.html
Copyright © 2011-2022 走看看