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 = ;
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();

XE8 hash的更多相关文章

  1. python连接redis、redis字符串操作、hash操作、列表操作、其他通用操作、管道、django中使用redis

    今日内容概要 python连接redis redis字符串操作 redis之hash操作 redis之列表操作 redis其他 通用操作,管道 django中使用redis 内容详细 1.python ...

  2. 复杂的 Hash 函数组合有意义吗?

    很久以前看到一篇文章,讲某个大网站储存用户口令时,会经过十分复杂的处理.怎么个复杂记不得了,大概就是先 Hash,结果加上一些特殊字符再 Hash,结果再加上些字符.再倒序.再怎么怎么的.再 Hash ...

  3. 对抗密码破解 —— Web 前端慢 Hash

    (更新:https://www.cnblogs.com/index-html/p/frontend_kdf.html ) 0x00 前言 天下武功,唯快不破.但在密码学中则不同.算法越快,越容易破. ...

  4. 散列表(hash table)——算法导论(13)

    1. 引言 许多应用都需要动态集合结构,它至少需要支持Insert,search和delete字典操作.散列表(hash table)是实现字典操作的一种有效的数据结构. 2. 直接寻址表 在介绍散列 ...

  5. hash表长度优化证明

    hash表冲突的解决方法一般有两个方向: 一个是倾向于空间换时间,使用向量加链表可以最大程度的在节省空间的前提下解决冲突. 另外一个倾向于时间换空间,下面是关于这种思路的一种合适表长度的证明过程: 这 ...

  6. SQL Server-聚焦查询计划Stream Aggregate VS Hash Match Aggregate(二十)

    前言 之前系列中在查询计划中一直出现Stream Aggregate,当时也只是做了基本了解,对于查询计划中出现的操作,我们都需要去详细研究下,只有这样才能对查询计划执行的每一步操作都了如指掌,所以才 ...

  7. C# salt+hash 加密

    一.先明确几个基本概念 1.伪随机数:pseudo-random number generators ,简称为:PRNGs,是计算机利用一定的算法来产生的.伪随机数并不是假随机 数,这里的" ...

  8. SQL 提示介绍 hash/merge/concat union

    查询提示一直是个很有争议的东西,因为他影响了sql server 自己选择执行计划.很多人在问是否应该使用查询提示的时候一般会被告知慎用或不要使用...但是个人认为善用提示在不修改语句的条件下,是常用 ...

  9. 对一致性Hash算法,Java代码实现的深入研究

    一致性Hash算法 关于一致性Hash算法,在我之前的博文中已经有多次提到了,MemCache超详细解读一文中"一致性Hash算法"部分,对于为什么要使用一致性Hash算法.一致性 ...

随机推荐

  1. MongoDB 学习笔记(二) 高级查询

    1.条件运算符 2.$all 匹配所有 3.$exists 判断字段是否存在 4.NUll 值处理 5.$mod 取模处理 6.$ne 不等于 7. $in 包含,与sql用法相同 8. $nin 不 ...

  2. 网络攻击之二:XSS(之一是SQL注入,前面有文章)

    学习了 http://www.oschina.net/question/565065_57506 (这里做了转载 http://blog.csdn.net/stilling2006/article/d ...

  3. css中图片的四种地址引用

    URL: CSS中四种引用图片asset的方式:

  4. [ionic开源项目教程] - 第3讲 左右滑动菜单的实现(使用Tabs和SlideBox)

    使用Tabs和SlideBox实现左右滑动菜单 1.将tab1.html的代码改为如下: <ion-view view-title="健康"> <ion-cont ...

  5. jsp之jstl标签

    常用jstl标签 一.<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> ...

  6. yaf框架流程三

    路由的原理请看http://yaf.laruence.com/manual/yaf.routes.html这个链接 要点:路由的顺序是堆栈模式的,及最后添加的路由规则最优先.由上两篇可知,定义的第一条 ...

  7. 【英语】Bingo口语笔记(13) - Call系列

    call off - call it off 取消它 call it a day / call it a night 今天到此结束吧/今晚到此结束吧

  8. 使用crs_setperm修改RAC资源的所有者及权限

    Oracle RAC 集群中,对于各种资源的管理,也存在所有者与权限的问题.crs_getperm与crs_setperm则是这样的一对命令,主要用于查看与修改集群中resource的owner,gr ...

  9. 【ASP.NET Web API教程】1.1 第一个ASP.NET Web API

    Your First ASP.NET Web API (C#)第一个ASP.NET Web API(C#) By Mike Wasson|January 21, 2012作者:Mike Wasson ...

  10. 一段实现页面上的图片延时加载的js

    大家如果使用firebug去查看的话就会发现,当你滚动到相应的行时,当前行的图片才即时加载的,这样子的话页面在打开只加可视区域的图片,而其它隐藏的图片则不加载,一定程序上加快了页面加载的速度,对于比较 ...