为什么SignHash需要知道使用了什么哈希算法?

2023-11-21

这可能是一个问题http://crypto.stackexchange.com,但我想我应该先在这里尝试一下,因为答案可能与 .NET 有关,而不是与加密算法本身有关。

In the RSACryptoServiceProvider 类,有一个方法SignHash, which:

通过使用私钥加密指定的哈希值来计算签名。

第一个参数是数据的哈希值(这看起来很公平),但第二个参数是一个字符串,说明用于创建哈希值的算法。

问题是为什么哈希算法很重要?当然,该方法需要做的就是使用其私钥加密给定值并返回结果?如果确实需要知道,为什么 RSACryptoServiceProvider 没有一个方法可以做到这一点(以及适当的验证方法)?


感谢铱星让我沿着正确的思路思考。

接收者得到两件事:

  • 消息
  • 签名(由发送者的私钥加密)

要验证消息,接收者需要使用发送者的公钥解密签名,并根据消息的哈希值进行检查。

如果未向收件人指定哈希算法,他们将无法知道如何对消息进行哈希处理,因此无法对其进行验证。

因此必须向接收者指定算法。

为了使哈希算法由发送者(知道签名是如何创建的)指定,并且其他任何人都无法修改,它需要包含在签名内,并与哈希一起加密。

因此,为了创建有用的签名,在加密哈希时需要指定哈希算法。

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

为什么SignHash需要知道使用了什么哈希算法? 的相关文章

  • 在 Entity Framework 4.1 中查询实体的子集合

    我有一组从 DbContext 中的 IDbSet 查询的实体 我现在想要迭代每个实体并查询它们的子集合 这些子集合在实体中定义为 ICollection 在子集合上调用 AsQueryable 并对其运行 linq 查询是否正确 如果是这
  • 跟踪 C#/.NET 任务流

    我正在尝试找到一种方法来跟踪异步任务执行流程 以便轻松理解任务 启动它的原始流程是什么 我主要需要它来记录 调试和保留特定执行流的堆栈跟踪 例如 如果我的服务器有来自多个 IP 的许多客户端 并且服务器需要为每个客户端执行一个涉及许多异步操
  • CryptoLicensing 的体验是好是坏? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我计划购买 CryptoLicensing 但在购买之前 如果有人尝试过 我想得到一些反馈 如果有人破解它或发现一个容易破解反对 我见过一些关于
  • C++/CLI:链接器为 win32 函数提供“未解析的令牌”

    Folks 我刚刚创建了我的第一个 C CLI 项目 Visual Studio 2008 它是一个允许我的 C 应用程序访问销售点理货打印机的库 我的库构建良好 从 C exe 调用时 一些简单的函数可以正常工作 但是 一旦我包含 Win
  • 本机代码、机器代码和汇编代码有什么区别?

    我对 NET 语言上下文中的机器代码和本机代码感到困惑 它们之间有什么区别 它们是一样的吗 这些术语确实有点令人困惑 因为它们有时使用不一致 机器代码 这是定义最明确的一种 它是使用字节码指令的代码 您的处理器 执行实际工作的物理金属部件
  • 通过 .NET 应用程序登录 SonicWALL VPN

    我目前正在尝试访问SonicWALL VPN 在 NET 应用程序内部 我们的数据库中有所有必要的凭据 但我找不到调用的方法SonicWALL Global VPN在 NET 应用程序中启动它 Does SonicWALL有任何类型的 AP
  • 向 .NET 隔离的 Azure 函数添加运行状况检查

    我找不到任何资源来将运行状况检查添加到在 NET 5 0 隔离中运行的 HTTPTrigger 功能应用程序 static async Task Main var host new HostBuilder ConfigureAppConfi
  • 使用 Trace 和 TraceSource 之间的区别

    任何人都知道之间的区别System Diagnostic Trace and System Diagnostic TraceSource课程 我在我的大部分项目中都使用了 Trace 我只是碰巧发现了TraceSource另一天 他们似乎提
  • 如何在 WPF 4.5 中为按钮单击事件制作 MarkupExtension?

    我想创建 MarkupExtension 来为按钮单击事件提供支持 我有一篇关于 PreviewKeyDown 的文章here http www jonathanantoine com 2011 09 23 wpf 4 5s markupe
  • Java + OpenPGP 有什么推荐吗?

    我想开发一个小型 OpenPGP 客户端 并且正在寻找 OpenPGP 的 Java 库 对于这种方法有任何 开源 建议吗 Cryptix org http www cryptix org 似乎不再活着了 我找到了充气城堡 http www
  • 如何在 linq to sql 中批量插入/更新?

    我该如何做这两种情况 目前我正在做这样的事情 public class Repository private LinqtoSqlContext dbcontext new LinqtoSqlContext public void Updat
  • 如何找到锁的所有者(监视器)?

    有没有办法发现哪个线程当前拥有锁 具体来说 我正在寻找一些代码来打印出阻止锁定的线程 我想尝试锁定给定的超时时间 然后报告哪个线程正在阻止锁定 不需要 只需编写代码 private int lockOwner private object
  • C++/CLI 从具有抽象方法的本机 C++ 类继承并将其公开给 C#

    我一直在谷歌上转圈子 试图找到一个成熟的例子 但没有成功 我有一个 C API 它提供了许多包含纯虚方法的类 供开发人员从中进行扩展 我试图做的是通过 C CLI 向 C 提供此接口 我已经设法将 API 编译到 C CLI 库中 但由于我
  • 如何使用 OpenSSL 为 DNSSEC 生成 ECDSA 私钥和公钥?

    我正在尝试为 DNSSEC 算法 13 创建私钥和公钥 include
  • C# - 从自定义应用程序读取嵌套事件日志

    我在用sysmon https technet microsoft com en us sysinternals dn798348捕获一堆事件信息 网络连接 DLL 加载等 我想提取该信息并将其用于各种目的 但似乎没有任何方法可以检索嵌套日
  • 如何在 C# 中绘制蜡烛图 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 如何在 C 中绘制蜡烛图 有人有任何界面漂亮的例子吗 我用过MSChart http code msdn
  • system.web.http.HttpError 的.Net 标准/核心版本

    从 net Framework 迁移到 net Standard Core 时 我遇到了 HttpError 类 除了兼容性垫片之外 我在 net core standard 中找不到任何等效项 这只是一个临时解决方案 不知道官方有没有替代
  • Outlook 插件:从选定的日历中获取元素

    我正在创建 Outlook 加载项 我想知道如何从选定的日历中获取元素 例如 我需要从名为 myCalendar 的日历中获取所有约会项目 现在 我可以从所有日历中获取所有约会项目 谢谢你 这些额外的日历作为主日历文件夹的子文件夹提供 所以
  • 如何检查应用程序的 .NET 版本?

    除了在仅具有 NET Framework 版本 3 5 的计算机上运行之外 如何检查 NET 应用程序的版本 NET 框架版本控制在 NET 2 0 之后变为 foobar 一个应用程序的目标是CLR版本 它使用 EXE 的程序集元数据来实
  • ASP.NET 中的 ThreadStaticAttribute

    我有一个需要存储的组件static每个线程的值 它是一个通用组件 可以在许多场景中使用 而不仅仅是在 ASP NET 中 我想用 ThreadStatic 属性来实现我的目标 假设它在 ASP NET 场景中也能正常工作 因为我假设每个请求

随机推荐

  • Pytorch - 在 softmax 层之后选择最佳概率

    我有一个使用 Pytorch 0 4 0 的逻辑回归模型 其中我的输入是高维的 我的输出必须是标量 0 1 or 2 我使用线性层与 softmax 层相结合来返回n x 3张量 其中每列表示输入属于三个类别之一的概率 0 1 or 2 但
  • 运行基于 OpenMPI 的库时出错

    我已经从 Ubuntu 中可用的标准 apt get install 安装了 openmpi 库 我运行一个调用 MPI 库的 python 代码 我收到以下错误 任何想法错误的根源是什么 是 OpenMPI 配置错误吗 如何解决这个问题
  • 如何查看WTForms验证错误?

    我正在编写一些基本测试 但测试失败了 def test new user registration self self client get user register form RegistrationForm email u email
  • fopen:无法打开流:Mac 上的 PHP 中的权限被拒绝 [重复]

    这个问题在这里已经有答案了 我写了这段代码 if file exists testfile rtf echo file exists else echo file doesn t exist fh fopen testfile rtf w
  • 如何在 Swift 中写入 Google Sheets

    我正在尝试通过以下方式写入 Google Sheets 文档这个谷歌API 但我没有取得太大成功 我什至不确定我是否遵循了正确的 api 因为它显示 Appscript 并且看起来像 Swift 我已经能够使用以下方法从工作表中读取数据 p
  • 当工作线程工作时,UI 变得不稳定

    我有一个手写识别应用程序 用户用手指绘画 该应用程序识别字符 识别引擎在具有尽可能低优先级的工作线程中运行 Thread MIN PRIORITY 它是纯粹的CPU 内存算法 没有任何I O 不过 当线程正在积极工作时 用户界面会变得相当不
  • 人类可读的 type_info.name() [重复]

    这个问题在这里已经有答案了 我编译了以下代码g 并得到输出 该输出写在注释中 template
  • Laravel 4 - 没有可用的猜测者问题

    我收到此错误 LogicException 无法猜测 mime 类型 因为没有可用的猜测器 您启用了 php fileinfo 扩展吗 我已经启用了 php fileinfo 扩展并重新启动了 Wamp Web 服务器 但我仍然无法解决这个
  • AsyncTask Android 示例

    我正在读关于AsyncTask 我尝试了下面的简单程序 但这似乎不起作用 我怎样才能让它发挥作用 public class AsyncTaskActivity extends Activity Button btn Called when
  • Firebase Listener 在空闲时间后无法识别或恢复连接

    我的项目是识别客户端是在线还是离线 我使用 Android Firebase 文档中提供的代码 该代码使用 info connected 中的 EventListener since I can connect from multiple
  • 从字符串源列表动态生成最短的正则表达式

    我有一堆 SKU 库存单位 它们代表一系列字符串 我想创建一个正则表达式来匹配它们 举例来说 如果我有 SKU var skus new BATPAG003 BATTWLP03 BATTWLP04 BATTWSP04 SPIFATB01 我
  • 在 Swift 3 中访问代码错误

    Xcode 8 beta 4 中的新功能 NSError桥接到 SwiftError协议类型 这会在处理失败时影响 StoreKitSKPaymentTransactions 您应该检查以确保没有因为事务被取消而发生错误 以了解是否向用户显
  • Spring REST - 将 GET 参数绑定到嵌套对象

    我知道你可以将 get 请求参数绑定到 pojo 例如 RequestMapping value reservation method RequestMethod GET produces MediaType APPLICATION JSO
  • 在字符串列表中的特定元素之前和之后插入元素

    当出现特定字符串时是否可以插入到列表中 例子 List north south east west south united 因此 每次出现字符串 south 时 列表都会插入一个项目 canada 在列表中元素 south 之前 Resu
  • [NodeJs][Sequelize] ReferenceError:初始化前无法访问“ModelName”

    目前我使用一个API实现节点 Js 13和 ORM续集 v5而这一切都在ES6 通过 package json 中的 type module 在这个项目中 当我尝试使用关联时出现问题 我有三个关联的模型 author js authorbo
  • 我如何推迟 jQuery Each 循环

    我在 jQuery 每个循环中执行 繁重 画布操作 导致较慢的设备 IE 和 iPad 有时变得完全无响应 所以我想我可以使用下划线 defer 将每个循环中的函数排队 例如 function handleAsset defer funct
  • Spark 可扩展性:我做错了什么?

    我正在使用 Spark 处理数据 它可以处理一天的数据 40G 但失败了OOM一周的数据 import pyspark import datetime import operator sc pyspark SparkContext sqc
  • 如何在 Android 版 Realm 中实现以下功能

    在我的应用程序中 我通常有一个加载器 它从 sqlite 加载数据 然后将其传递到它所附加的活动或片段 从那里将其设置在 absListView 的适配器中 然后将其呈现给用户 由于领域声明其对象不应该跨线程共享 如何在不从 UI 线程进行
  • Jackson JsonMappingException:无法反序列化实例

    我正在尝试使用 Jackson 将 json 数据转换为 POJO 对象 这是 MainActivity 和我的 POJO 类代码 我基本上收到了 JsonMappingException 错误 我还附上了整个日志 MainActivity
  • 为什么SignHash需要知道使用了什么哈希算法?

    这可能是一个问题http crypto stackexchange com 但我想我应该先在这里尝试一下 因为答案可能与 NET 有关 而不是与加密算法本身有关 In the RSACryptoServiceProvider 类 有一个方法