当前位置: 首页 > 知识库问答 >
问题:

不带ASN.1编码的C#RSA签名

姜彬郁
2023-03-14

首先,我需要在C#代码中复制echo-n“someunhasheddata”openssl pkeyutl-sign-inkey rsa.key base64-w0功能。我设法将私钥加载到system.security.cryptography.rsacryptoServiceProvider调用signdata,但得到的结果与OpenSSL PKEYUTL不同。

据我所知,根据这篇文章和这个RFC,当pkeyutl-sign被调用时,没有-pkeyopt digest:hashfunc,openssl不会用digest函数标识符捆绑数据,并跳过ASN.1编码。这意味着对原始数据进行填充和加密。这个工具似乎确认,解密签名看起来像填充的明文数据。

那么用C#怎么做呢?rsacryptoServiceProvider中的所有函数都要求在加密之前指定哈希算法和编码签名。我是否遗漏了什么,或者我将不得不编写自己的RSA私人加密?

共有1个答案

漆雕昊天
2023-03-14

NET没有收件箱API来执行“原始RSA”。如果您需要该功能来匹配另一个RSA使用者中的现有bug,则必须创建一个新类,该类将p/调用到系统加密库(或者以其他方式提供您所寻求的功能)

 类似资料:
  • 我正在尝试使用.NET(CNG提供商)的现有ECDSA密钥,以便使用Bouncy Castle对数据进行签名,然后在两种签名格式(P1363和ASN.1)之间进行转换。然而,我总是得到不同的签名。我不太确定转换是否不正确,或者我是否使用了不正确的方法来使用Bouncy Castle读取.NET密钥。 由于某些原因,和已经不同,我假设问题甚至可能在转换之前就出现了。我已经看过许多StackOverf

  • 我在Golang有一个RSA加密的项目,所以现在,我有一个Base64公钥格式,用于加密消息, 我使用了以下代码: 当我运行此代码时,我得到了这个错误: 错误指向publicKeyInterface,它无法将Base64解码格式解析为公钥,我的代码有什么问题? =======更新===== 我的publicKeyBase64是使用二进制数据类型从模型中检索的 当我把它存储在我的mongoDB从我的

  • 问题内容: 我正在尝试在python3上创建一个非分离签名。我目前有使用m2crypto在python2上执行此操作的代码,但是m2crypto无法用于python3。 我一直在尝试rsa,pycrypto和openssl,但尚未找到找到方法。 这是等效的OpenSSL命令: 这是我无法使用rsa,pyopenssl或pycrypto模仿的选项。 有人在python3上这样做吗?我想尽可能避免使用

  • 首先,我对加密/签名还是新手,所以请容忍任何滥用术语的行为。 我需要在C#中创建一个签名,该签名将被Python库验证。在Python中,解码/验证签名只需一段简单的代码: 我当前的C#代码如下所示: 但是,签名在Python代码中未通过验证检查。它看起来像PSS填充。Net库默认使用MGF1。然而,我相信我有问题,因为掩码生成函数(MGF1)在Python代码中使用256位哈希,但在C#中默认为

  • 这是我生成RSA密钥的代码 现在我想转换DER/ASN.1编码字节,也知道使用Java JCE API生成RSA密钥时使用的默认编码格式是什么。

  • asn

    ASN Lookup Tool and Traceroute Server Quick jump: Description Screenshots Installation Usage (as a command line tool) Usage (as a lookup & traceroute server) Description ASN / RPKI validity / BGP stat