【问题标题】:Ruby error "bignum too big to convert into long"Ruby 错误“bignum 太大而无法转换为 long”
【发布时间】:2016-07-22 02:34:29
【问题描述】:

我正在尝试用 ruby​​ 生成一个 RSA 密钥对:

OpenSSL::PKey::RSA.generate(aReallyLongBignum, 65537)

但我收到以下错误:

bignum too big to convert into long

但是它可以在 python 中使用RSA.construct。有什么办法可以在红宝石中工作吗?我到处都看过。在这里真的迷路了。我不想一次只取这个号码的一部分,我需要能够将整个号码传递给RSA.generate

【问题讨论】:

  • @jww 这不是重复的,这个问题是关于仅对字符串中长数字的一部分进行操作,我需要将整个数字一次性传递
  • 好的,相信你的话。对于那个很抱歉。请编辑问题,并提供更多代码。 aReallyLongBignum 需要用样本值完全指定。 (原始重复引用:RangeError: bignum too big to convert into `long')。

标签: ruby openssl rsa long-integer bignum


【解决方案1】:

我能够使用OpenSSL::BN 解决这个问题,并在创建OpenSSL::Pkey::RSA 的实例后设置它

key   = OpenSSL::PKey::RSA.new
key.e = OpenSSL::BN.new(65537)
key.n = OpenSSL::BN.new(aReallyLongBignum)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-08
    相关资源
    最近更新 更多