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 = ;
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的更多相关文章
- python连接redis、redis字符串操作、hash操作、列表操作、其他通用操作、管道、django中使用redis
今日内容概要 python连接redis redis字符串操作 redis之hash操作 redis之列表操作 redis其他 通用操作,管道 django中使用redis 内容详细 1.python ...
- 复杂的 Hash 函数组合有意义吗?
很久以前看到一篇文章,讲某个大网站储存用户口令时,会经过十分复杂的处理.怎么个复杂记不得了,大概就是先 Hash,结果加上一些特殊字符再 Hash,结果再加上些字符.再倒序.再怎么怎么的.再 Hash ...
- 对抗密码破解 —— Web 前端慢 Hash
(更新:https://www.cnblogs.com/index-html/p/frontend_kdf.html ) 0x00 前言 天下武功,唯快不破.但在密码学中则不同.算法越快,越容易破. ...
- 散列表(hash table)——算法导论(13)
1. 引言 许多应用都需要动态集合结构,它至少需要支持Insert,search和delete字典操作.散列表(hash table)是实现字典操作的一种有效的数据结构. 2. 直接寻址表 在介绍散列 ...
- hash表长度优化证明
hash表冲突的解决方法一般有两个方向: 一个是倾向于空间换时间,使用向量加链表可以最大程度的在节省空间的前提下解决冲突. 另外一个倾向于时间换空间,下面是关于这种思路的一种合适表长度的证明过程: 这 ...
- SQL Server-聚焦查询计划Stream Aggregate VS Hash Match Aggregate(二十)
前言 之前系列中在查询计划中一直出现Stream Aggregate,当时也只是做了基本了解,对于查询计划中出现的操作,我们都需要去详细研究下,只有这样才能对查询计划执行的每一步操作都了如指掌,所以才 ...
- C# salt+hash 加密
一.先明确几个基本概念 1.伪随机数:pseudo-random number generators ,简称为:PRNGs,是计算机利用一定的算法来产生的.伪随机数并不是假随机 数,这里的" ...
- SQL 提示介绍 hash/merge/concat union
查询提示一直是个很有争议的东西,因为他影响了sql server 自己选择执行计划.很多人在问是否应该使用查询提示的时候一般会被告知慎用或不要使用...但是个人认为善用提示在不修改语句的条件下,是常用 ...
- 对一致性Hash算法,Java代码实现的深入研究
一致性Hash算法 关于一致性Hash算法,在我之前的博文中已经有多次提到了,MemCache超详细解读一文中"一致性Hash算法"部分,对于为什么要使用一致性Hash算法.一致性 ...
随机推荐
- Server-Side UI Automation Provider - WinForm Sample
Server-Side UI Automation Provider - WinForm Sample 2014-09-14 源代码 目录 引用程序集提供程序接口公开服务器端 UI 自动化提供程序从 ...
- 安装hadoop
生成yum源 cd /var/ftp/pub/cdh/5 createrepo --update . 从节点 yum clean all 配置yum库 /etc/yum.repos.d # cat / ...
- Eclipse常用的插件安装
嫌公司用的eclipse不爽,准备自己弄一个,diy的,没想到装插得烦死人. 诱惑人的“常用插件”: (1) AmaterasUML 介绍:Eclipse的UML插件,支持UML活 ...
- Qt之模型/视图(自定义按钮)
简述 衍伸前面的章节,我们对QTableView实现了数据显示.自定义排序.显示复选框.进度条等功能的实现,本节主要针对自定义按钮进行讲解,这节过后,也希望大家对自定义有更深入的了解,在以后的功能开发 ...
- 转:整理一下Entity Framework的查询
Entity Framework是个好东西,虽然没有Hibernate功能强大,但使用更简便.今天整理一下常见SQL如何用EF来表达,Func形式和Linq形式都会列出来(本人更喜欢Func形式). ...
- IOS中UICollectionView和UICollectionViewController的用法
1.新建一个xib描述UICollectionViewCell(比如DealCell.xib),设置好resuse identifier(比如deal) 2.控制器继承UICollectionView ...
- hihoCoder #1174 : 拓扑排序·一 (判断循环图)
G++ 261ms 13MB 题意: 给出n门课程的修读所需要的前置课程的关系,按理说应该是个拓扑图,但是因为某些原因导致了混乱,所以有可能不是一个拓扑图.现在的问题是,判断该图是否为一个拓扑图(即无 ...
- Ensemble Learning 之 Adaboost
Boosting Boosting 是一种提升方法,将一系列弱学习器组合成为强学习器.基于样本权重的 Boosting 的工作流程是这样的,给定初始训练集构建一个基学习器,根据基学习器对训练样本的分布 ...
- SqlDataAdapter的update方法
公司项目需要,需要将旧数据升级.所谓的旧数据指密码,密码经过了加密处理,但是可逆的.现将加密算法进行了更新,因此需要同步处理系统中已有的旧数据. 所有的数据存储在一个表中,简单的说是数据批量更新.自动 ...
- HDFS命令行文件操作
Hadoop文件操作命令形式为 hadoop fs -cmd <args> 说明:cmd是具体的文件操作命令,<args>是一组数目可变的参数. Hadoop最常用的文件操作命 ...