无法加载 RSA 公钥

2024-04-11

我正在尝试读取如下所示的 RSA 公钥,但在第 6 行出现异常: java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: IOException: algid parse error, not a sequence

My code:

String rsaPublicKey = rsaPublicKeyString.replace(
    "-----BEGIN RSA PUBLIC KEY-----\n", "");
rsaPublicKey = rsaPublicKey.replace("\n-----END RSA PUBLIC KEY-----", "");
byte[] bytes = EncryptionUtils.decodeBase64(rsaPublicKey);

KeyFactory keyFactory = KeyFactory.getInstance("RSA");
X509EncodedKeySpec keySpec = new X509EncodedKeySpec(bytes);
pubKey = (RSAPublicKey)keyFactory.generatePublic(keySpec);

RSA 公钥:

-----BEGIN RSA PUBLIC KEY-----
MIIBCgKCAQEAwVACPi9w23mF3tBkdZz+zwrzKOaaQdr01vAbU4E1pvkfj4sqDsm6
lyDONS789sVoD/xCS9Y0hkkC3gtL1tSfTlgCMOOul9lcixlEKzwKENj1Yz/s7daS
an9tqw3bfUV/nqgbhGX81v/+7RFAEd+RwFnK7a+XYl9sluzHRyVVaTTveB2GazTw
Efzk2DWgkBluml8OREmvfraX3bkHZJTKX4EQSjBbbdJ2ZXIsRrYOXfaA+xayEGB+
8hdlLmAjbCVfaigxX0CDqWeR1yFL9kwd9P0NsZRPsmoqVwMbMu7mStFai6aIhc3n
Slv8kg9qv1m6XHVQY3PnEw+QQtqSIXklHwIDAQAB
-----END RSA PUBLIC KEY-----

我究竟做错了什么?

UPD:

public static byte[] decodeBase64(String data) throws EncryptionException {
    try {
        BASE64Decoder decoder = new BASE64Decoder();
        return decoder.decodeBuffer(data);
    } catch (Exception e) {
        throw new EncryptionException(e);
    }
}

对我来说,我缺少公钥中的 OID。我必须使用这里的帮助在 iOS 端纠正这个问题:http://blog.wingsofhermes.org/?p=42 http://blog.wingsofhermes.org/?p=42

另外,我的公钥不必转换为 RSAPublicKey,该标准工作得很好:

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

无法加载 RSA 公钥 的相关文章

随机推荐

  • 在页面上显示 # 个视图,而无需始终访问数据库

    越来越多的网站显示某些页面收到的浏览量 以及点击次数 如 dzone com 跟踪视图而不每次加载都访问数据库的最佳实践是什么 我脑子里有很多关于如何做到这一点的潜在想法 但似乎没有一个可行 谢谢 首次使用的用户 我会首先尝试数据库方法 返
  • android中如何从静态方法调用非静态方法

    我在从静态方法调用非静态方法时面临一个大问题 这是我的代码 Class SMS public static void First function SMS sms new SMS sms Second function public voi
  • Ansible sudo 在执行 5 个任务后挂起

    设置要求 本地用户 goagent1 ansible从GoCD启动 远程用户 myadmin myadmin 是一个需要密码的 sudoer 我们在剧本级别启用了 sudo Problem 该剧本似乎在执行了大约 5 个任务后停止了 发生得
  • “混合声明和代码”警告,值得解决吗?

    我最近启用了 pedanticgcc 上的选项 现在我收到大约两三页的 ISO C90 禁止混合声明和代码 警告 我这个项目的目标是能够将其部署在任何主流系统带有 C 编译器 所以我意识到假设 C99 将在所有地方都受支持是不明智的 但是是
  • Macvim 默认不会加载特定的配色方案

    我遇到了类似的问题VIM 配色方案默认不加载 https stackoverflow com questions 2637929 vim color scheme not loading by default 除了我遇到了这里找到的 gen
  • jQuery getJSON 将结果保存到变量中[重复]

    这个问题在这里已经有答案了 我使用 getJSON 从我的网站请求 JSON 它工作得很好 但我需要将输出保存到另一个变量中 如下所示 var myjson getJSON http 127 0 0 1 8080 horizon updat
  • 如何在 Eclipse 中使用 JavaFX 2 SDK?

    我已经安装了 JavaFX 2 0 SDK 现在我想使用 Eclipse 制作一个 JavaFX 应用程序 但我该如何使用javafx Eclipse 中的类 The 官方 JavaFX Eclipse 插件 http docs oracl
  • C# 7.0 独立丢弃混淆

    我想更好地理解几个涉及 C 7 0 丢弃功能的使用的示例 他们都利用所谓的单独丢弃 https learn microsoft com en us dotnet csharp discards a standalone discard 这是
  • CQRS 对于我的域是否正确?

    我正在对一个档案进行建模 它是视频点播系统的一部分 将存档想象成 Windows 资源管理器 其中多个用户可以创建文件夹 上传视频 重组文件夹等 有业务规则 权限 确定是否允许用户执行任务 即重命名文件夹 移动文件夹 查看文件夹等 我已将每
  • 如何减少 Hybris 服务器的启动时间?

    我正在研究一个Hybris项目这是非常耗时的等待 350 550 秒对于单个Hybris服务器启动 即使只是代码中的一点修改 错误输入 是否有可能reduce this time仅运行我修改过的扩展或任何其他方式 那将是一件很棒的事情 在
  • DirectX Release 构建可以通过 VS2010 运行,但不能运行 exe

    我已经通过 Google 访问 Stack Overflow 几年了 但到目前为止还没有询问 回答任何问题 所以就到这里吧 基本上 我有一个在 DirectX 11 中设置绘图模型和地形的 3D 渲染框架 一切正常 通过 Visual St
  • 当前上下文中不存在名称“isPost”(带有 Razor 的 ASP.NET)

    我正在尝试遵循有关 Razor 入门的 Microsoft 文档 https learn microsoft com en us aspnet web pages overview getting started introducing r
  • 如何使用VBA在Excel中保持第一个单元格始终处于活动状态

    如何在打开 Excel 工作表时保持第一个单元格始终处于活动状态 任何人都可以指导我如何做到这一点 这是我的 代码 Private Sub Send Click Dim strURL As String strURL http xxxxxx
  • UIFont - 如何获取系统细字体

    UIFont有方法获取常规字体 systemFontOfSize 或粗体 boldSystemFontOfSize 但是如何通过情节提要获得可用的 瘦系统字体 将 系统精简 传递给UIFont构造函数不起作用 该构造函数仅适用于非系统字体
  • Django 开发将 HttpResponses 记录到开发服务器

    我正在使用 Django 创建一个 API 每个视图都以 JSON 形式响应 我想将每个 HttpResponse JSON 记录到开发服务器输出 到目前为止我已经添加了一个处理程序 console level DEBUG class lo
  • 在 Python 中列出所有 Google Drive 文件和文件夹并保存 ID

    我正在尝试编写一个程序来将文件夹和所有内容 包括子文件夹等 复制到另一个文件夹 我可能过于复杂化了 但我觉得第一步是获取与它们关联的所有文件名和 ID 并将它们保存到两个列表中 一个用于文件 一个用于文件夹 我无法让我的程序递归地遍历所有子
  • 无法验证 AzureAD 本机客户端应用程序

    我已经注册了一个 AzureAD 应用程序 它是公共客户端 本机客户端 我在门户中使用 Azure 生成的标准代码 重要的是 static App clientApp PublicClientApplicationBuilder Creat
  • 在Java中,我们可以将一个类分成多个文件吗

    是否有可能使用Java将一个类划分为多个物理文件 不 整个类必须位于 Java 的单个文件中 如果您正在考虑 C 的 部分类型 功能 那么 Java 中没有类似的功能 如果您没有想到 C 请忽略此
  • 带有 rpi 主站和从站的 Profibus [关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 我的任务是使用 Rpi 和 Rs 485 转换器构建 profibus 主站和从站网络 一个 Rpi 将成为主设备 另一个将成为从设备
  • 无法加载 RSA 公钥

    我正在尝试读取如下所示的 RSA 公钥 但在第 6 行出现异常 java security spec InvalidKeySpecException java security InvalidKeyException IOException