delphi中的sha1校验和

2023-11-29

我用delphi编写了以下代码。

with TIdHashMessageDigest5.Create do begin
    st2.Position := 0;
    Digest := HashValue( st2 );
    SetLength( Hash, 16 );
    Move( Digest, Hash[1], 16);
    Free;
end;

我需要将其转换为使用 SHA1 哈希值。我在库中找不到 SHA1 类型。有人可以帮忙吗?我在互联网上寻求帮助,但找不到任何帮助。


看这里:

https://sergworks.wordpress.com/2014/10/25/high-performance-hash-library/

Delphi XE 中的 SHA1 哈希

https://sourceforge.net/projects/sha1implementat/

http://www.colorfultyping.com/generate-a-sha-1-checksum-for-a-given-class-type/

顺便说一句,你没有提到你的 Delphi 版本。如果您使用的是现代版本(XE 以后),我认为它的标准库应该支持 SHA-1、MD5 等。

你可以这样做:

uses IdHashSHA;

function SHA1FromString(const AString: string): string;
var
  SHA1: TIdHashSHA1;
begin
  SHA1 := TIdHashSHA1.Create;
  try
    Result := SHA1.HashStringAsHex(AString);
  finally
    SHA1.Free;
  end;
end;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

delphi中的sha1校验和 的相关文章

随机推荐

  • 将右值传递给非引用参数,为什么编译器不能删除副本?

    struct Big int a 8 void foo Big a Big getStuff void test1 foo getStuff 编译 在 Linux 上使用 clang 6 0 0 for x86 64 因此 System V
  • 使用 error_log() 通过电子邮件发送错误消息

    php 函数 error log 允许您将第二个参数设置为 1 将日志发送到电子邮件 我这样做了 但我想以 html 形式显示消息 代码如下所示 error log this gt errorMsg 1 ADMIN MAIL Content
  • 运行 android HelloTabWidget 示例时出现问题 - addTab() 上的 NullPointerException

    我已经尝试过选项卡布局示例 我还修复了示例中的几个拼写错误 并将所有活动添加到清单中 但是 当我在模拟器上运行它时 我在第一行收到一个 NullPointerException 上面写着 tabHost addTab 规格 所以我的问题当然
  • Swift 3 中具有属性的单例

    在苹果的将 Swift 与 Cocoa 和 Objective C 文档结合使用 针对 Swift 3 进行了更新 他们给出了以下单例模式示例 class Singleton static let sharedInstance Single
  • 当请求时间过长时使用哪个 HTTP 响应代码?

    我正在构建一个 API 可以对我们存储的非常大的数据库进行分析 有些请求需要很长时间才能处理 我们希望主动中止耗时超过 10 分钟的请求 但在我们尝试之前 我们不知道请求是否会花费那么长时间 大多数时候 这并不是因为服务器瞬时过载 这是因为
  • Objective-C 块与选择器。哪一个更好?

    例如 在 Objective C 中 当您实现要执行重复操作的方法时 您需要在该语言为您提供的几个选项之间进行选择 interface FancyMutableCollection NSObject void sortUsingSelect
  • 每隔一分钟运行 JS 函数

    我正在开发这个 JavaScript 时钟 我希望它能够与客户端的系统时钟完美同步 我知道如何使用Date对象 我知道如何每 60000 毫秒 1 分钟 运行一次更新函数 问题是客户端可能会在半分钟过去时加载页面 从而使时钟落后 30 秒
  • React.js 中声明式和命令式的区别?

    最近我研究了很多关于 Facebook JavaScript 库 React js 的功能和使用方法 当谈到它与 JavaScript 世界其他部分的差异时 通常会提到两种编程风格declarative and imperative被提到
  • 创建一个“停靠”到屏幕一侧并在最大化时限制其他窗口大小的 .NET 应用程序

    我收到了来自上级的一个有趣的请求 他们想要一个简单的应用程序 可以在用户的 计算机上显示多个时区的时间 这本身是微不足道的 一个带有计时器的简单窗口 它将获取当前 UTC 时间并将其转换为他们想要查看的任意数量的时区 以更新某些标签的文本
  • SpringBoot从2.1.1升级到2.1.2时出错

    我有一个带有 Spring Boot 版本的 SpringBoot 应用程序2 1 1 RELEASE 我尝试将其升级到最新版本 2 1 2 RELEASE 现在我在初始化时遇到错误 源代码中是否需要更改某些内容 我看到Spring版本从5
  • Tcl 错误:命令名无效 tcl_findLibrary

    当我键入以下命令 使用 iPython 时出现此错误Tkinter Tk pylab plot 或者一般运行 pylab 但是import pylab不会引发任何错误 Tcl error invalid command name tcl f
  • 处理 UTC 日期和未来

    我刚刚发现 存储UTC 日期如果我们还处理未来的日期 则不太正确 情况似乎如此 因为 时区似乎发生了变化比我们想象的更频繁 幸运的是 我们似乎拥有IANA 技术数据库这似乎会定期更新 但是令人困惑的是 postgres 似乎使用特定版本 它
  • 无法在 codeIgniter 中使用会话

    我的表单控制器中有一个会话 该会话是在用户保存时创建的 会话影响表单页面 所以我的问题是 如果我加载页面而没有单击 保存 则会出现未定义的索引 会话索引 错误 所以我在主页创建了会话 但问题是 如果我加载表单页面而没有首先访问主页 则会出现
  • 将 Jlist 添加到 JScrollPane

    我有一个 JList 需要将其放置在滚动窗格中 因为我从数据库获取 JList 并且值可能会大大增加 我需要能够向下滚动它们 所以我写道 import java awt BorderLayout import java awt Color
  • Spring Batch:如何重新启动并仅重新运行跳过的项目

    更正文件中的错误后 我可以重新启动作业并仅处理跳过的项目吗 我正在阅读文档 目前没有发现这种可能性 如果作业失败 您可以重新启动作业 但我正在考虑在完成一些跳过的项目后重新启动作业 如果通过配置无法实现这一点 我自己实现它的好方法是什么 在
  • 禁用浏览器的后退按钮

    如何禁用浏览器的后退按钮 跨浏览器 不要禁用预期的浏览器行为 让您的页面能够处理用户返回一两页的可能性 不要试图削弱他们的软件
  • Chrome:获取 iFrame 并插入正文

    我有以下代码 在 Firefox 中运行良好 if iFrame iFrame outerDoc getElementById dialog iframe var iFrameDoc iFrame contentWindow documen
  • 如何使用带有签名 url 的 gcs-resumable-upload

    我希望能够使用 Node js 客户端应用程序对 Google Cloud Storage 进行可恢复上传gcs 可续传上传包 连 同签名网址 因为客户端应用程序是由未经身份验证的用户调用的 我的服务器通过调用生成签名网址获取签名网址 wi
  • 简单的页面重定向?

    我有一个页面位于http site com services 我只想将其重定向到http site com services first service 执行此操作的最佳重定向是什么 我该如何执行此操作 PHP header Locatio
  • delphi中的sha1校验和

    我用delphi编写了以下代码 with TIdHashMessageDigest5 Create do begin st2 Position 0 Digest HashValue st2 SetLength Hash 16 Move Di