如何从模数、指数和私有指数创建 Crypt::RSA 对象?

2024-04-24

我正在尝试将以下 php 功能移植到 perl:

public function loadKey($mod, $exp, $type = 'public')
{
    $rsa = new Crypt_RSA();
    $rsa->signatureMode = CRYPT_RSA_SIGNATURE_PKCS1;
    $rsa->setHash('sha256');
    $rsa->modulus = new Math_BigInteger(Magicsig::base64_url_decode($mod), 256);
    $rsa->k = strlen($rsa->modulus->toBytes());
    $rsa->exponent = new Math_BigInteger(Magicsig::base64_url_decode($exp), 256);

    // snip...
}

我需要转换形式的字符串 ("RSA.$mod.$exp.$private_exp"):

RSA.mVgY8RN6URBTstndvmUUPb4UZTdwvwmddSKE5z_jvKUEK6yk1u3rrC9yN8k6FilGj9K0eeUPe2hf4Pj-5CmHww==.AQAB.Lgy_yL3hsLBngkFdDw1Jy9TmSRMiH6yihYetQ8jy-jZXdsZXd8V5ub3kuBHHk4M39i3TduIkcrjcsiWQb77D8Q==

...到 Crypt::RSA 对象。我已经拆分了组件,因此我有 $mod、$exp 和 $private_exp,但 perl Crypt::RSA API 似乎没有办法显式设置。


在 IRC 上完成,为世界其他地方记录它:它完全没有记录,但是Crypt::RSA::Key does有称为n, e, and d对应于模数、公共指数和私有指数。检查函数中的模错误(即supposed工作如果p and q不可用但是n是,但实际上不是),可以使用这些方法创建工作密钥。

我们通过创建一个子类来共同解决这个问题Crypt::RSA::Key::Private使用解码 Base64 编码的工厂方法(使用MIME::Base64::URLSafe http://search.cpan.org/perldoc/MIME::Base64::URLSafe)和附加的二进制编码(使用数学::BigInt http://search.cpan.org/perldoc/Math::BigInt->from_hex 和unpack "H*")然后设置这三个私有成员,以及Crypt::RSA模块能够接受它作为密钥。

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

如何从模数、指数和私有指数创建 Crypt::RSA 对象? 的相关文章

随机推荐

  • Numpy 数组被舍入?小浮点数的减法

    我将 numpy 数组的元素分配为等于 小 值的 python 浮点类型数字的减法 当我这样做并尝试通过打印到命令行来验证结果时 数组被报告为全零 这是我的代码 import numpy as np np set printoptions
  • 电话管理器值可靠且可变(cdma)吗?

    我想知道我的应用程序是否可以依赖 Android 上的电话值 例如国家 地区 MCC 等 我可以使用 setprop 在运行时更改它们吗 我尝试使用 setprop 进行更改 但似乎不起作用 据我了解 电话管理器是一个类 接口 代表 GSM
  • PHP-OOP 扩展两个类?

    我是 OOP 的初学者 现在我正在尝试编写一些 PHP 类来连接 FTP 服务器 class ftpConnect private server private user private password private connectio
  • Gem-idea:当 HTTP 方法发布、放置或删除时,在 before_filter 中使用验证码自动垃圾邮件防护

    我正在考虑为 Rails 编写一个自动垃圾邮件防护系统 也许我会编写一个公共 gem 我的想法是在 application controller 中包含一个辅助方法 class ApplicationController lt Action
  • Google 翻译 API V2 的速率限制是多少?

    我非常频繁地使用 Google 翻译 API V2 在大约 2000 个请求之后 我开始在返回的 JSON 中得到以下内容 Array error gt Array errors gt Array 0 gt Array domain gt
  • 如果收到警告 Converting to string: TypedValue, 如何识别代码错误的地方?

    以下是 LogCat 的摘录 04 04 19 51 51 270 INFO ActivityManager 57 Starting activity Intent cmp com example app Preferences 04 04
  • 如何让 XAML 中的图像显示为实际大小?

    我有一个27 x 27我在 WPF 中显示的像素图像 但它显示larger比大小window 如何让它显示实际尺寸 替代文本 http www deviantsart com upload m20dk6 png http www devia
  • PHP XSS 预防白名单

    我的网站使用所见即所得编辑器 供用户更新帐户 输入评论和发送私人消息 编辑器 CKEditor 非常适合只允许用户输入有效的输入 但我担心通过 TamperData 或其他方式注入 我如何在服务器端控制这个 我需要将特定标签列入白名单 b
  • 将专用 NV12 视频帧转换为 RGB

    我有一个使用 Android MediaCodec 解码的 H264 流 当我查询输出 MediaFormat 时 颜色格式为 2141391875 显然 这是一种专门的 NV12 变体 称为 HAL PIXEL FORMAT NV12 A
  • 旧的 Top Coder 谜语:通过插入 + 来生成数字

    我正在考虑 给定一串数字 找到该字符串等于某个目标数字所需的最少加法次数 每次添加都相当于在数字字符串中的某处插入一个加号 插入所有加号后 照常计算总和 例如 考虑 303 和目标总和为 6 最佳策略是 3 03 我会用蛮力解决它 如下所示
  • 一个 Node.js 集群可以在 64 位 Wintel PC 上生成多少个子进程?

    我正在运行并发测试 为了简洁起见 为每个欺骗的 http 请求定义了一个进程 对于最多 64 个请求 进程 它工作得很好 但在 65 个请求 进程上就折叠起来了 我在一台 I5 笔记本电脑上运行 Window 7 64 位 具有 4GB R
  • 在 Excel 中通过宏向表添加列时设置列标题

    因此 我正在研究这个宏 它根据表中的其他列自动将列添加到表中 所以这是功能 我在此表中有许多标题为 CY 2010 CY 2020 的列 这些年将不可避免地发生变化 然后我想为每个 CY 列在表中添加一列 此外 我希望这些列的标题与年份相匹
  • 如何检查已触摸对象的 ID (iOS)

    在我的视图中 我有一个包含一堆不同点的数组 然后我通过循环运行该数组以在视图中创建一堆不同的正方形 您还可以看到我尝试使用辅助功能标识符来创建类似 ID 的系统 这可能是一个非常糟糕的做法 但我没有主意了哈哈 这是视图 import Lev
  • MongoDB聚合,按值区间分组,

    MongoDB 文档 id 123213 elevation 2300 area 25 id 343221 elevation 1600 area 35 id 545322 elevation 500 area 12 id 234234 e
  • 查找重复邮寄地址的策略

    我正在尝试想出一种根据相似度分数查找重复地址的方法 考虑这些重复的地址 addr 1 3 FAIRMONT LINK SOUTH addr 2 3 FAIRMONT LINK S addr 3 5703 48TH AVE adrr 4 57
  • 将标头添加到 WCF RequestSecurityToken 消息

    我正在尝试设置将使用 WSHttpBinding 进行通信的客户端 Web 应用程序 和服务 WCF 服务 看来 为了使用此绑定 客户端会发送初步消息来设置通道 客户端和服务之间存在一条服务总线 该总线在自定义标头上进行路由 当使用 Bas
  • 为什么 Glass 缺少 Google Play 服务?

    谷歌眼镜上不包含谷歌播放服务的原因是什么 将来会添加它们吗 看来将来还会在 Glass 上添加 Google Play 服务 有一个问题已被 接受 尽管具有中等优先级 请参阅来自谷歌眼镜官方发行网站
  • 如何从 node_modules 延迟加载外部模块?

    我们可以像这个模块一样延迟加载本地模块 path somePpath loadChildren app path some module SomeModule 我们如何延迟加载来自驻留在node modules中的外部库的模块 要在路由器模
  • 从 ASP 的 Ajax.ActionLink 获取 JsonResult

    如何使用 Ajax ActionLink 从控制器方法实际获取 JSON 我尝试搜索该网站 但我得到的最接近的是返回 JSON 或部分 html 的 ASP NET MVC 控制器操作 https stackoverflow com que
  • 如何从模数、指数和私有指数创建 Crypt::RSA 对象?

    我正在尝试将以下 php 功能移植到 perl public function loadKey mod exp type public rsa new Crypt RSA rsa gt signatureMode CRYPT RSA SIG