在C中将MD5结果转换为整数

2024-02-28

我的目标是使用 MD5 结果来索引哈希表。我想对其执行模运算以在表中找到适当的槽。我尝试将其转换为无符号 long long 类型。当我打印结果时,对于相同的 MD5 哈希值,每次都会得到不同的数字。 MD5 哈希值最初是一个 unsigned char *。有人可以告诉我我做错了什么吗?

这是我的功能:

int get_fp_slot(unsigned char * fingerprint, int size)
{
return (unsigned long long)fingerprint % size;
}

MD5 哈希值是一个 128 位数字。因此,为了获得最佳性能,您应该保留所有 128 位。

鉴于您的函数将 128 位哈希值作为字符串,您需要将该字符串解析为一系列 4 个整数。你的字符串可能看起来像这样:

79054025255fb1a26e4bc422aef54eb4

那是一个 32 字节的十六进制字符串。如果是这样,您可以像这样提取二进制版本:

int v1, v2, v3, v4;
sscanf( &fingerprint[0], "%x", &v1 );
sscanf( &fingerprint[8], "%x", &v2 );
sscanf( &fingerprint[16], "%x", &v3 );
sscanf( &fingerprint[24], "%x", &v4 );

你现在做什么实际上取决于你希望哈希值有多好。如果您确实需要使用 32 位数字,那么只需将所有这些数字异或在一起即可:

int hash = v1 ^ v2 ^ v3 ^v4;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在C中将MD5结果转换为整数 的相关文章

随机推荐

  • JavaFX css 类样式

    如何为扩展 JavaFX 对象的类设置 CSS 样式 public class DiagramPane extends ScrollPane implements IDiagramEditor Methods go here 我在main方
  • 何时使用上下文处理器

    我有一个网站 其中包含一个 userBox 其中显示每个登录用户的一些数据 您的姓名 头像等 从我对 django 的了解来看 很明显 我应该将用户查询添加到上下文处理器 以便我可以使用 user 其中的变量包括 userBox 但是在使用
  • C# .First() 与 [0]

    有兴趣 做法有什么不同吗 所以 我创建了两个片段 Snippet A List
  • Java 8 自动使用多核?

    一年前 我用 java 7 做了一些关于多核的测试 首先 我仅在主线程中实现了一些计算 CPU 使用情况表明只有一个核心完成了所有工作 然后我使用 ExecutorService 实例实现了 Callable 运行时所有核心都在工作 现在
  • ASP.NET Core 相当于 ASP.NET MVC 5 的 HttpException

    在 ASP NET MVC 5 中你可以抛出一个HttpException https learn microsoft com en us dotnet api system web httpexception使用 HTTP 代码 这将设置
  • C 中二维数组声明的歧义

    我已经用以下格式定义了数组 但显然该程序仅在情况 B 中工作正常 CASE A int M1 M1 int malloc m sizeof int for int i 0 i
  • 客户端应用程序已请求访问资源“https://outlook.office365.com”。本次请求失败

    我正在尝试从office365 API测试示例代码 我可以登录到我的帐户 但之后我总是会得到这个异常 AuthenticationFailedException 被捕获 AADSTS65005 客户端应用程序已请求访问资源 https ou
  • wkhtmltopdf css 尺寸(厘米/毫米)

    我使用 wkhtmltopdf 生成 A4 大小的 PDF 当我创建一个 div 标签并将其样式设置为height 297mm width 210mm 这是A4的定义尺寸 将wkhtmltopdf的边距设置设置为0 wkhtmltopdf
  • 创建全局对象?

    我正在努力实现以下目标 当用户成功通过身份验证后 我需要创建一个可以从不同表单 或类 访问的全局用户对象 我正在查看 VS 中可用的数据源 发现有一个 对象 选项可能适合我想要实现的目标 问题是 我不知道它是如何工作的 有人能指出我正确的方
  • 无法导入 PyQt4.QtGui

    我安装了一个有效的 Python 2 6 并且刚刚安装了为 Python 2 6 构建的 PyQt4 可在http www riverbankcomputing co uk software pyqt download http www r
  • 有没有一种方法可以使用 AJAX/jQuery 上传图像而不使用 Flash 或 iframe?

    还要尽量避免使用任何插件 当然除了 jQuery 无论你是否称其为插件 我已经有一个大型系统 并且不想为其加载大量插件 当然 如果我也需要的话 我会寻找重量非常轻的东西 尝试这个 http www 9lessons info 2011 08
  • 提高访问映射中的元素和写入文件的性能

    我有一个 C 映射结构 其中包含大约 6000 万对 填充地图后 我想将其写入一个普通文件 目前这段代码非常慢 我想知道您是否对我如何加快编写速度有任何建议 我可以 1 改进在地图中访问元素的方式吗 或者2 通过加速文件写入本身 map
  • “MvxWpfSetup”必须是具有公共无参数构造函数的非抽象类型

    我正在尝试遵循该视频末尾的代码here https youtu be 8E000zu8UhQ 但我在 1 11 10 标记附近收到此错误 error CS0310 MvxWpfSetup
  • mongodb 在 commitTransaction 失败后我是否需要 abortTransaction ?

    mongoose mongodb node js 代码 session commitTransaction function err reply if err session abortTransaction Do I need this
  • 我需要对用户进行身份验证和授权的最低 ASP.NET 提供程序实现是什么?

    默认情况下 ASP NET MVC 将 AccountController 设置为使用 SqlMembershipProvider SqlProfileProvider 和 SqlRoleProvider 我真的不需要所有的东西 事实上 将
  • 使用reduce()的有用代码? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 这里有人有任何在Python中使用reduce 函数的有用代码吗 除了我们在示例中看到的常见 和 之外 还有其他代码吗 Refer Python
  • Font Awesome 菜单图标有 1px 偏移

    我已经尝试解决这个问题几个小时了 并且我一直在寻找一个好的解决方案 但运气不佳 它让我发疯 摆弄填充和行高 垂直对齐它没有做任何事情 这是在另一个线程中建议的 基本上我正在尝试创建一个响应式导航菜单 当点击或单击图标时 将在菜单显示时下推页
  • 使用 libgit2 从临时索引创建树对象 - git2go

    在命令行上我可以执行以下操作 touch foo GIT INDEX FILE tmp tmp d95ehfhUOffoo index git add A GIT INDEX FILE tmp tmp d95ehfhUOffoo index
  • 在匿名类型上编写 Group By

    我正在两个表上编写一个 group by 子句 这两个表已连接并通过实体数据模型进行访问 我无法迭代匿名类型 有人可以帮助我吗 public string GetProductNameByProductId int productId st
  • 在C中将MD5结果转换为整数

    我的目标是使用 MD5 结果来索引哈希表 我想对其执行模运算以在表中找到适当的槽 我尝试将其转换为无符号 long long 类型 当我打印结果时 对于相同的 MD5 哈希值 每次都会得到不同的数字 MD5 哈希值最初是一个 unsigne