C# 中是否有一种哈希算法可以产生 64 位的哈希大小?

2024-01-05

我需要根据可变长度字符串生成一个哈希值,该字符串可以存储在不超过 16 的字段中(由于供应商要求)。

我将通过 C# 脚本转换传递的几个字符串连接在一起,以计算哈希值。我受到供应商文件规范的限制,因为哈希的输出不能超过 16 个字符。

有没有人有什么建议?例如,MD5 算法(128 位)的字符串转换的十六进制编码长度为 32 个字符。


加密函数的设计使得您可以将输出截断到一定大小,并且截断的哈希函数仍然是安全的加密哈希函数。例如,如果将 SHA-512 输出的前 128 位(16 字节)应用于某些输入,则前 128 位是加密哈希,其强度与任何其他 128 位加密哈希相同。

解决方案是选择一些加密哈希函数 - SHA-256、SHA-384 和 SHA-512 是不错的选择 - 并且截断输出 https://stackoverflow.com/questions/3026762/is-it-okay-to-truncate-a-sha256-hash-to-128-bits至 128 位(16 字节)。

--EDIT--

根据注释,当编码为 ASCII 时,哈希值必须在 16 个 ASCI 字符之内,解决方案是

  • 首先,选择一些加密哈希函数(SHA-2 系列包括 SHA-256、SHA-384 和 SHA-512)
  • 然后,将所选哈希函数的输出截断为 96 位(12 字节),即保留哈希函数输出的前 12 个字节并丢弃其余字节
  • 然后,将截断的输出进行 Base-64 编码为 16 个 ASCII 字符(128 位)
  • 有效地产生 96 位强的加密哈希。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 中是否有一种哈希算法可以产生 64 位的哈希大小? 的相关文章

  • 在模板类中声明模板友元类时出现编译器错误

    我一直在尝试实现我自己的链表类以用于教学目的 我在迭代器声明中指定了 List 类作为友元 但它似乎无法编译 这些是我使用过的 3 个类的接口 Node h define null Node
  • 在 xaml 中编写嵌套类型时出现设计时错误

    我创建了一个用户控件 它接受枚举类型并将该枚举的值分配给该用户控件中的 ComboBox 控件 很简单 我在数据模板中使用此用户控件 当出现嵌套类型时 问题就来了 我使用这个符号来指定 EnumType x Type myNamespace
  • C# 异步等待澄清?

    我读了here http blog stephencleary com 2012 02 async and await html that 等待检查等待的看看它是否有already完全的 如果 可等待已经完成 那么该方法将继续 运行 同步
  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • 机器Epsilon精度差异

    我正在尝试计算 C 中双精度数和浮点数的机器 epsilon 值 作为学校作业的一部分 我在 Windows 7 64 位中使用 Cygwin 代码如下 include
  • C++11 删除重写方法

    Preface 这是一个关于最佳实践的问题 涉及 C 11 中引入的删除运算符的新含义 当应用于覆盖继承父类的虚拟方法的子类时 背景 根据标准 引用的第一个用例是明确禁止调用某些类型的函数 否则转换将是隐式的 例如最新版本第 8 4 3 节
  • 如何从 Visual Studio 将视图导航到其控制器?

    问题是解决方案资源管理器上有 29 个项目 而且项目同时具有 ASP NET MVC 和 ASP NET Web 表单结构 在MVC部分中 Controller文件夹中有大约100个子文件夹 每个文件夹至少有3 4个控制器 视图完全位于不同
  • 如何在 C# 中打开 Internet Explorer 属性窗口

    我正在开发一个 Windows 应用程序 我必须向用户提供一种通过打开 IE 设置窗口来更改代理设置的方法 Google Chrome 使用相同的方法 当您尝试更改 Chrome 中的代理设置时 它将打开 Internet Explorer
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 如何使从 C# 调用的 C(P/invoke)代码“线程安全”

    我有一些简单的 C 代码 它使用单个全局变量 显然这不是线程安全的 所以当我使用 P invoke 从 C 中的多个线程调用它时 事情就搞砸了 如何为每个线程单独导入此函数 或使其线程安全 我尝试声明变量 declspec thread 但
  • 需要帮助优化算法 - 两百万以下所有素数的总和

    我正在尝试做一个欧拉计划 http projecteuler net问题 我正在寻找 2 000 000 以下所有素数的总和 这就是我所拥有的 int main int argc char argv unsigned long int su
  • 人脸 API DetectAsync 错误

    我想创建一个简单的程序来使用 Microsoft Azure Face API 和 Visual Studio 2015 检测人脸 遵循 https social technet microsoft com wiki contents ar
  • ASP.NET Core 3.1登录后如何获取用户信息

    我试图在登录 ASP NET Core 3 1 后获取用户信息 如姓名 电子邮件 id 等信息 这是我在登录操作中的代码 var claims new List
  • 两个静态变量同名(两个不同的文件),并在任何其他文件中 extern 其中一个

    在一个文件中将变量声明为 static 并在另一个文件中进行 extern 声明 我认为这会在链接时出现错误 因为 extern 变量不会在任何对象中看到 因为在其他文件中声明的变量带有限定符 static 但不知何故 链接器 瑞萨 没有显
  • C# - 当代表执行异步任务时,我仍然需要 System.Threading 吗?

    由于我可以使用委托执行异步操作 我怀疑在我的应用程序中使用 System Threading 的机会很小 是否存在我无法避免 System Threading 的基本情况 只是我正处于学习阶段 例子 class Program public
  • LINQ:使用 INNER JOIN、Group 和 SUM

    我正在尝试使用 LINQ 执行以下 SQL 最接近的是执行交叉联接和总和计算 我知道必须有更好的方法来编写它 所以我向堆栈团队寻求帮助 SELECT T1 Column1 T1 Column2 SUM T3 Column1 AS Amoun
  • C 函数 time() 如何处理秒的小数部分?

    The time 函数将返回自 1970 年以来的秒数 我想知道它如何对返回的秒数进行舍入 例如 对于100 4s 它会返回100还是101 有明确的定义吗 ISO C标准没有说太多 它只说time 回报 该实现对当前日历时间的最佳近似 结
  • 有没有办法让 doxygen 自动处理未记录的 C 代码?

    通常它会忽略未记录的 C 文件 但我想测试 Callgraph 功能 例如 您知道在不更改 C 文件的情况下解决此问题的方法吗 设置变量EXTRACT ALL YES在你的 Doxyfile 中
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • 现代编译器是否优化乘以 1 和 -1

    如果我写 template

随机推荐

  • 使用 Swift 计算 SpriteKit 中的 delta

    我正在尝试通过重构我的一款旧游戏来快速学习 我需要重写我的update计算增量时间的方法 这段代码works但很丑 我该怎么办properly重写这个 import SpriteKit class GameScene SKScene var
  • Flot:如何在条形图中设置数字样式?

    我在用着流程图 http www flotcharts org 它是插件Flot barnumbers Demo http joetsoi github io flot barnumbers 显示图表 我需要在栏中显示数字 它可以工作 不幸
  • FPDF 在每个 A4 尺寸页面的页脚处获取页码

    我正在使用 FPDF 创建 PDF 报告 现在 如何在页面底部的报告的每一页上生成页码 以下是生成 2 页 PDF 的示例代码
  • Scala 宏检查树的匿名函数

    我刚刚开始使用宏 感觉我错过了一些非常明显的痛苦 我想检查 AST 中是否有传递给我的宏的匿名 lambda 函数 最终我想对它做一些事情 但我在第一个障碍上就失败了 我的代码如下所示 object Test extends App doI
  • 错误:DisplayListCanvas.throwIfCannotDraw 处的 RuntimeException

    我的应用程序在牛轧糖模拟器和许多设备上运行得很好 但我在 google play crash reports 中发现了这个异常 我不知道为什么会发生这种情况 该异常仅在牛轧糖设备 上引起 例外 java lang RuntimeExcept
  • 父变量在 ng-content 内不起作用

    Intro 我正在研究 ng2 组件 其结构如下
  • 在 C# (ASP.net) 中删除重复查询字符串的最快方法是什么

    我遇到一个问题 该公司使用业务跟踪系统来捕获用户的首次访问并将他们重定向到他们试图访问的页面 但附加了引用 URL 现在 由于引用网址包含该人试图访问的网址 不要问为什么 我不知道 它会导致我拥有每个值的重复项 所以参观这个 home as
  • 根据运输类别有条件地隐藏 WooCommerce 运输方式

    使用 WooCommerce v3 2 4这个网站 这里 https mur hatcherydev xyz WP v4 9 和 11 种运输类别为超重 超大且适用统一费率的产品 20前往加拿大和 25到美国 所有其他产品均采用统一费率运输
  • 如何垂直对齐 span 标签内的内容?

    如何使 x 在跨度的中间垂直对齐 foo height 50px border solid black 1px display inline block vertical align middle span class foo x span
  • 如何将 scons 指向安装在我的主目录中的不同编译器?

    我尝试编辑 SConstruct 以指向不同的 gcc 编译器 但它似乎总是使用 usr bin gcc 和 usr bin g 中定义的编译器 env DefaultEnvironment env CC home aaron devel
  • 我如何利用 NSCoding 将对象转换为 NSDictionary ?

    我有一个实现 NSCoding 的 Objective C 类 我需要以 NSDictionary 的形式返回此类实例的表示形式 其中键是属性名称 值是属性值 如何在 Objective C 中进行这种转换 NSObject 有一个方法di
  • NumPy:取消排序/撤消反向/降序排序

    我可以对 numpy 数组进行就地反向排序 降序排序 但我还需要能够稍后对其进行取消排序 撤消 给出一个未排序的例子 a np array 1 2 1 3 2 0 I tried i a 1 argsort argsort BAD atte
  • MySQL 中使用 WHERE EXISTS 进行 DELETE 查询[重复]

    这个问题在这里已经有答案了 我正在使用 MySql 中的一张表执行 where contains 查询 它与 SELECT 一起工作正常 但当我尝试执行 DELETE 而不是 SELECT 时失败 如何使用删除执行相同的查询 提前谢谢了 s
  • PreparedStatement,使用一个参数多个“?”

    我有一个插入如果不存在查询 如下所示 BEGIN IF NOT EXISTS SELECT FROM tbl sampleTable WHERE name or subject BEGIN INSERT INTO tbl sampleTab
  • Windows Azure AppFabric 服务是否已停止?

    我正在使用 Azure Microsoft 提供了一项与云中的 AppFabric 配合使用的服务 网上有很多关于云中此服务的文章 但我在 Azure 中没有找到它 您可以告诉我此服务是否是重命名了 这就是为什么我找不到或者它已经停产了 服
  • 为什么我的 .tfignore 文件不忽略我的包文件夹

    我正在使用 Visual Studio 2013 Pro 和 Team Foundation Server 2013 我有一个包含以下行的 tfignore 文件 packages
  • 激活和停用调用功能

    我尝试使用 C 语言延迟 Unity 中的函数 通过使用Invoke 我实现了当光标移动到某个区域时添加延迟 但是 现在我需要取消Invoke当光标从该特定区域移开时 这个想法是 当我不小心将光标移动到该区域时 我可以取消那里调用的任何函数
  • Android AlarmManager.set(...):电池电量低时从未收到通知

    我正在尝试使用 AlarmManager 在我的应用程序中安排延迟检查 具体来说 用户接近某个位置 N 分钟后 我想检查他们是否仍然在那里 如果是 则向他们发送通知 我通过检查他们是否已进入我的位置更新接收器中的区域来实现此目的 如果他们已
  • Android - 任何用于将转发标签添加到位图的库

    我一直在尝试制作一个照片共享应用程序 能够将您的图像和名称添加到图像中 我一整天都在用 Canvas 搞乱 但没有得到好的结果 我能够绘制名称和位图 但它们看起来不太好 这就是为什么我在这里询问是否有任何库或代码可以帮助我制作类似于 thi
  • C# 中是否有一种哈希算法可以产生 64 位的哈希大小?

    我需要根据可变长度字符串生成一个哈希值 该字符串可以存储在不超过 16 的字段中 由于供应商要求 我将通过 C 脚本转换传递的几个字符串连接在一起 以计算哈希值 我受到供应商文件规范的限制 因为哈希的输出不能超过 16 个字符 有没有人有什