ASN.1 DER 格式的私钥

2024-01-05

为什么模数要用前导零填充?我正在阅读 PKCS#1 和 PKCS#8 但没有找到任何相关内容。 在 C# 中,必须删除前导零,有人知道为什么吗?

At http://etherhack.co.uk/asymmetry/docs/rsa_key_breakdown.html http://etherhack.co.uk/asymmetric/docs/rsa_key_breakdown.html,您可以看到模数和指数有前导零。问题是他们为什么有它,我还没有在任何地方找到解释。


私钥值被编码为 ASN.1 INTEGER,它们是二进制补码格式的有符号值。当设置(无符号)RSA 密钥值的 MSB 时,前导零字节是必需的。设置 MSB 而不带前导零字节将意味着负值。

ASN.1 规范是免费的,链接自维基百科 http://en.wikipedia.org/wiki/Abstract_Syntax_Notation_One。这里的相关部分是 X.690,“8.3 整数值的编码”。

我将在这里提供一个示例,以防链接页面消失。

如果您有 openssl,您可以使用以下命令生成测试密钥:

openssl genrsa -out test.pem 512
openssl rsa -in test.pem -out test.der -outform der

以下是来自 test.der 的示例数据:

30 82 01 3b
ASN.1 SEQUENCE,长度0x13b,内容如下

02 01 00
版本:ASN.1 INTEGER,存储长度1,值0

02 41 00 c0 8e ...(65 个数据字节)
模数:ASN.1 INTEGER,存储长度 65,值 0xc08e...(需要前导零字节,因为模数 > 2^511)

02 03 01 00 01
公共指数:0x10001(不需要前导零字节,因为指数

02 41 00 b5 87 ...(65 个数据字节)
私有指数:0xb587...

02 21 00 e7 18 ...(33 个数据字节)
素数1:0xe718...

02 21 00 d5 43 ...(33 个数据字节)
素数2:0xd543...

02 20 75 67 a1 ...(32 个数据字节)
exponent1: 0x7567...(不需要前导零字节,因为指数

02 20 0a f6 3f ...(32 个数据字节)
指数2:0x0af6...

02 21 00 c7 13 ...(33 个数据字节)
系数:0xc713...

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

ASN.1 DER 格式的私钥 的相关文章

  • [C-SAE] MAP消息解析及格式说明

    1 消息内容
  • OpenSSL中文手册之ASN1库详解(未完待续)

    openssl之ASN 1系列之1 引言和ASN 1概述 引言 ASN 1全称为Abstract Syntax NotationOne 是一种描述数字对象的方法和标准 openssl的编码方法就是基于该标准的 目前 很多其他软件的编码方法也
  • 从公钥正确创建 RSACryptoServiceProvider

    我目前正在尝试创建一个RSACryptoServiceProvider仅来自解码的 PEM 文件的对象 经过几天的搜索 我确实设法找到了一个可行的解决方案 但它还不是一个可以投入生产的解决方案 简而言之 为了创建一个RSACryptoSer
  • 读取 ASN.1 DER 编码的 RSA 公钥

    我正在编写一个应用程序来更好地了解 DKIM 规范说我从域 TXT 记录中检索 ASN 1 DER 编码 公钥 我可以在 s1024 domainkey yahoo com MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBi
  • 使用 go 结构进行 ASN.1 解组会出现标签不匹配错误

    我正在尝试对以下定义执行 ASN 1 marshal unmarshal 操作 ACEI SEQUENCE message MessageFields neRegNumber OCTET STRING OPTIONAL gpsInfo Gp
  • 无法从 PKCS8 获取私钥

    无法从自行生成的 PKCS8 获取私钥 我已经生成了私钥 KeyPair pair getKeyPair StringWriter privateWriter new StringWriter try JcaPEMWriter w new
  • X.509 证书中的专有名称长度限制

    在通用名称字段中 如 OID 2 5 4 3 的 ASN 1 表示法中所定义 限制最多为 64 个字符 如果我们想要一个超过 64 个字符的通用名 有什么办法吗 即使你可以哄骗你的证书生成代码拥有更长的 CN 它也是clients这需要改变
  • ASN.1 编译器错误标记“SYNTAX”意外

    我目前正在尝试编译 ASN 1 代码片段 它看起来如下 RFC1213 MIB DEFINITIONS BEGIN IMPORTS experimental FROM RFC1155 SMI OBJECT TYPE FROM RFC 121
  • ASN.1 DER 格式的私钥

    为什么模数要用前导零填充 我正在阅读 PKCS 1 和 PKCS 8 但没有找到任何相关内容 在 C 中 必须删除前导零 有人知道为什么吗 At http etherhack co uk asymmetry docs rsa key bre
  • Delphi 中的任何 Asn1 实现

    Delphi 中是否有任何不错的 asn1 实现或库 Try StreamSec ASN 1 工具 http www streamsec com products stasn1 asp 它们也出现在合作伙伴 DVD 中
  • X.509v3 ASN.1 到 C 数据结构

    我正在尝试创建代理证书的 X509 请求 ProxyCertInfo 扩展RFC3820 http www ietf org rfc rfc3820 txt 在 C OpenSSL 中 但我无法弄清楚应该如何定义 ProxyCertInfo
  • 如何在 Java 中读取 RSA 密钥?

    我正在尝试用 Java 读取 RSA 公钥和私钥文件 我的 RSA 公钥和私钥是使用 PuttyGen 生成的 SSH 2 RSA 1024 位 我用来读取文件的代码是 public key pubkeyBytes getBytesFrom
  • OpenSSL ASN.1 编程教程

    我正在寻找有关使用 OpenSSL 库进行 ASN 1 DER 编码的任何 C C 教程 示例代码或文档 好吧 正如您在 openssl 网站上看到的那样 没有 ASN 1 函数的官方文档 但你总是可以下载 openssl 源 http o
  • 如何从.key和.crt文件获取.pem文件?

    如何从 SSL 证书创建 PEM 文件 这些是我可用的文件 crt server csr server key 您的密钥可能已经是 PEM 格式 但只是以 crt 或 key 命名 如果文件的内容开头为 BEGIN您可以在文本编辑器中阅读它
  • 在 C# 中创建 ASN1 编码签名以发送到 Java

    我有一个私人 公共安全证书 我的 Java 同行拥有公钥 我需要获取一个字符串 对其进行签名 然后将其发送到 Java 然后验证数据和签名 微软和世界其他地方如何编码 签名数据似乎存在一个众所周知的问题 即有关字节处理方式的问题 这是众所周
  • JcaPEMWriter 可以生成 PKCS#8 输出吗?

    以下代码使用JcaPEMWriterBouncyCastle 中的类 以 PKCS 1 格式输出随机生成的 RSA 私钥 BEGIN RSA PRIVATE KEY public static void main String args t
  • 为什么 Symantec CSR 检查程序认为我的 CSR 在 AlgorithmIdentifier 中缺少 NULL 值? RFC3279

    由于许多令人不快的原因 我一直在尝试使用 bouncycastle API 手动构建自己的证书签名请求 表面上 我选择这样做是因为我需要 CSR 的预签名版本 以便使用存储在 HSM 中并在 LMK 下加密的密钥生成 sha256withR
  • 使用 Java 解密 OpenSSL PEM 编码的 RSA 私钥?

    我有一个加密的私钥并且我知道密码 我需要使用 Java 库对其进行解密 不过 除非没有其他选择 否则我不想使用 BouncyCastle 根据以往的经验 改动太多 文档不够 私钥的形式如下 BEGIN RSA PRIVATE KEY Pro
  • 使用 Crypto Node.js 出现错误“数据对于密钥大小来说太大”

    我收到错误 Error error 0406C06E rsa routines RSA padding add PKCS1 type 1 data too large for key size 当我做 var crypto require
  • 关于如何将 JSON 消息转换为 ASN.1 的想法

    我正在尝试将 JSON 消息转换为 ASN 1 我的目标是将 JSON 从wire shark 捕获 转换为 ASN 1 然后将 asn1 转换为 802 11p 我应该研究哪些想法或资源 我正在使用Python 3 7 您可以使用此工具将

随机推荐

  • 如何使用 C++ std::ostream 和类似 printf 的格式?

    我正在学习C cout是一个实例std ostream班级 如何用它打印格式化字符串 我仍然可以使用printf 但我想学习一种正确的 C 方法 可以利用 C 的所有优点 我认为这应该是可能的std ostream 但我找不到正确的方法 在
  • 如何使用 socket.io 判断哪个套接字连接单击了按钮?

    如果页面上有一个按钮 并且您想确保在另一个套接字单击其按钮之前无法再次单击该按钮 如果套接字 a 单击 我应该禁用该按钮 直到另一个套接字发送一条消息 表明他们单击了按钮 然后返回第四个 buttonTurns on click funct
  • 如何在 Archlinux 中使用 gcc 7.2 编译 gcc 6.4.0

    我正在尝试在 Archlinux 中与 gcc 7 2 独立编译 gcc 6 4 0 配置如下 configure prefix INSTALL PREFIX enable languages c c fortran enable thre
  • Lambda 函数作为构造函数中 std::function 的默认参数

    我希望在类的构造函数中为函子参数提供一个默认函子 作为一个最小的例子 我想出了一个应该作为过滤器的类 它过滤类型的元素T如果过滤器函数返回 true 过滤器函数应该在构造函数中提供 默认为 接受所有 过滤器函数 template
  • 如何使用循环在每个 div 中添加类

    这是我的结构 我想在每两个 div 中添加奇偶类 所以我怎样才能使用 JavaScript 循环实现这个结构我尝试了一切 但我什么也没得到我正在学习 JavaScript 循环所以任何人都请帮助我 var i 0 CollectionInn
  • 动态代码执行:字符串 -> 运行时代码 VB.net

    我正在尝试在运行时执行字符串内的一些代码 IE Dim code As String IIf 1 2 True False 我如何运行里面的代码code细绳 正如 ElektroStudios 所说 正确的方法是使用CodeDom编译器 h
  • ExtJS 6 plugin.rowwidget 在创建行主体组件时获取绑定记录

    我有一个网格Ext grid plugin RowWidget http docs sencha com extjs 6 2 0 classic Ext grid plugin RowWidget html 当我展开行时 我必须使用行记录数
  • Jquery UI 选项卡:下一个和上一个基于选择框启用/禁用

    我目前正在使用 Jquery UI 选项卡 我只能使用下一个 上一个按钮进行操作 这将迫使用户按顺序浏览选项卡 在我的第一个选项卡中 我有一组动态选择框 我试图让用户在启用 下一步 按钮之前从对应的类别及其子类别中选择一个类别及其子类别 但
  • 在 C++ 中将结构体作为构造函数参数传递

    我已尽我所能 但在这个特定主题上找不到太多内容 我必须采用大量变量 可能是多个对象 并将它们传递给一组函数 所以我认为这是最好的方法 我想将一个结构传递给未定义该结构的类的构造函数 这可能吗 我的代码看起来像这样 class myClass
  • 在自定义 JsonConverter 的 ReadJson 方法中处理 null 对象

    我有一个 Newtonsoft JSON NETJsonConverter帮助反序列化类型为抽象类的属性 它的要点如下 public class PetConverter JsonConverter public override bool
  • 如果 socket.setdefaulttimeout() 不起作用,我该怎么办?

    我正在编写一个脚本 多线程 来从网站检索内容 并且该网站不是很稳定 所以时不时地会出现挂起的 http 请求 甚至无法超时socket setdefaulttimeout 由于我无法控制该网站 我唯一能做的就是改进我的代码 但我现在没有想法
  • RestKit 和 AFNetworking 构建错误

    当我尝试将 RestKit api 导入项目时 出现以下错误 Documents Code RestTest RestKit Code Network RKHTTPRequestOperation h 21 9 AFNetworking h
  • 连接 Pandas 日期时间

    我有这个问题的解决方案 实际上有两个解决方案 但我对它们不满意 原因是我尝试读取的文件大约有 1200 万行 使用这些解决方案需要花费大量时间来处理它们 主要是因为解法是逐行运算 所以 我读了这样的文件 In 1 df pd read cs
  • 如何使用 Injector 在函数中模拟注入服务

    在 Angular 7 x 中 我有一个全局错误处理 可以使用注入器注入他的服务 因此每个函数都有一个对注入器的引用 如下所示 import ErrorHandler Injectable Injector NgZone from angu
  • 用户是否使用键盘或鼠标离开 WPF TextBox?

    我有一个文本框的处理程序PreviewLostKeyboardFocus事件 当我使用键盘 Tab 键 或鼠标 通过单击表单上的另一个文本框 离开文本框时 它会触发 处理程序需要一个KeyboardFocusChangedEventArgs
  • 如何将数组列表分配给jsp中的选择选项

    我有清单 ArrayList list new ArrayList 我写这个列表选择选项 td td
  • .NET Native 应用程序相当于修改标头 Firefox Addon

    我正在尝试用 C 开发一个袜子隧道应用程序 它能够通过使用添加和修改的标头请求来打开网站 类似于修改标题 Firefox 插件 https addons mozilla org en US firefox addon modify head
  • 动态 SQL 和存储过程优化

    我读到在存储过程中使用动态 SQL 会损害存储过程的性能 我猜想理论是存储过程不会存储通过 EXEC 或 sp executesql 执行的 SQL 的执行计划 我想知道这是否属实 如果这是真的 我是否对多个嵌套 IF 块也有同样的问题 每
  • 如何在 java EE 7 的 JAX-RS 层中获取 Java 对象的 JSON 表示?

    我们当前使用的是 Java EE 5 在发送响应之前 我们会执行以下操作将 POJO 转换为 JSON GET Path books Produces MediaType APPLICATION JSON public Response g
  • ASN.1 DER 格式的私钥

    为什么模数要用前导零填充 我正在阅读 PKCS 1 和 PKCS 8 但没有找到任何相关内容 在 C 中 必须删除前导零 有人知道为什么吗 At http etherhack co uk asymmetry docs rsa key bre