从 Ruby 打开 RSA 私钥

2024-02-11

I think我知道如何创建自定义加密 RSA 密钥,但如何像 ssh-keygen 那样读取加密的密钥?

我知道我可以这样做:

OpenSSL::PKey::RSA.new(File.read('private_key'))

但随后 OpenSSL 要求我输入密码...我如何将其作为参数传递给 OpenSSL?

而且,我怎样才能创建一个与 ssh-keygen 生成的兼容的呢?

我做这样的事情来创建私有加密密钥:

pass = '123456'
key = OpenSSL::PKey::RSA.new(1024)
key = "0000000000000000#{key.to_der}"
c = OpenSSL::Cipher::Cipher.new('aes-256-cbc')
c.encrypt
c.key = Digest::SHA1.hexdigest(pass).unpack('a2' * 32).map {|x| x.hex}.pack('c' * 32)
c.iv = iv
encrypted_key = c.update(key)
encrypted_key << c.final

另外,当我尝试无密码登录时,由 OpenSSL::PKey::RSA.new(1024) (未加密)生成的密钥不起作用(即,我将公钥复制到服务器并使用私钥来登录)登录)。

另外,当我通过 OpenSSL 打开 ssh-keygen 文件然后检查其内容时,它的密钥开头和结尾似乎有其他字符。这是正常的吗?

我不太了解其中的一些安全知识,但我正在努力学习。我做错了什么?


根据这里的博客文章:

http://stuff-things.net/2008/02/05/encrypting-lots-of-sensitive-data-with-ruby-on-rails/ http://stuff-things.net/2008/02/05/encrypting-lots-of-sensitive-data-with-ruby-on-rails/

您可以简单地执行以下操作:

OpenSSL::PKey::RSA.new(File.read('private_key'), 'passphrase')

祝你好运。

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

从 Ruby 打开 RSA 私钥 的相关文章

  • asp.net 视图状态加密

    我有几个关于何时以及如何在 ASP NET 3 5 中加密视图状态的问题 例如 如果我的 web config 中有一个机器密钥条目 例如 解密Key 自动生成 IsolateApps 验证 AES 解密 自动 gt 此时视图状态是否已加密
  • 已定义方法的 Ruby 钩子?

    我一直在谷歌上搜索这个问题 但找不到答案 这让我认为答案是否定的 但我想我会在这里问 以防有人确切知道 Ruby 是否有一个钩子来定义方法 即在模块或类上 如果没有 是否有人足够熟悉该实施的情况main对象以了解它到底如何将方法复制到Obj
  • Bundle 说 gem 丢失了 - 但事实并非如此?

    背景 我正在维护contentRuby On Rails 站点 但我确实没有 Rails 的经验 当尝试运行 Rails 服务器时 rails s我明白了 在任何来源中均找不到 activesupport 3 2 0 Run bundle
  • ruby从1.8.7升级到1.9.2(使用Rails 3.1.1)后本地服务器错误

    我刚刚安装了rvm并使用rvm将ruby从1 8 7升级到1 9 2 我在我的应用程序上运行了捆绑安装 它重新安装了我的 gems 当我在本地运行 Rails 服务器并将浏览器导航到 localhost 3000 时 服务器日志中显示以下错
  • 红宝石接球和效率

    catch在 Ruby 中意味着跳出深度嵌套的代码 在 Java 中 例如用Java也可以达到同样的效果try catch用于处理异常 但它被认为是糟糕的解决方案 而且效率非常低 在 Ruby 中 我们有处理异常的方法begin raise
  • Ruby/Rails 集合到集合

    我有两个表与一个连接表连接 这只是伪代码 Library Book LibraryBooks 我需要做的是 如果我有一个图书馆的 id 我想获取该图书馆拥有的所有书籍所在的所有图书馆 因此 如果我有图书馆 1 图书馆 1 中有书籍 A 和
  • 如何使用 net/http 验证 ruby​​ 中的 SSL 证书链

    我如何验证网站的证书 例如https processing ukash com https processing ukash com 在 ruby 中使用 net http https Net HTTP new processing uka
  • 在 OpenSSL 中使用零填充?

    System Security Cryptography TripleDES 允许我使用零填充 如下所示 static TripleDES CreateTripleDES byte key byte iv TripleDES des new
  • 什么是适合 Rails 3 的测试框架?

    去年我一直在使用 Ruby On Rails 但是 无法进行单元测试 现在我必须编写单元测试代码 哪个测试框架好 为什么 有这方面的好的教程吗 我的系统配置 Ruby 1 9 2 Rails 3 Ubuntu 10 第一个技巧是 尝试升级到
  • 使用 ruby​​ 调整动画 GIF 图像的大小?

    我正在尝试将 GIF 图像调整为不同的尺寸 我在 ruby 中使用 RMagick 库 但对于某些 gif 图像 即使我缩小 GIF 的大小 文件大小似乎也会增加 我正在以相同的纵横比调整图像图像的大小 这是我的代码 require rma
  • 带有 git Remote 的 Gem 文件在 Heroku 推送上失败

    我的 gemfile 中有以下行 gem client side validations git gt email protected cdn cgi l email protection Dakuan client side valida
  • 逐行加密/解密文件?

    我对加密还很陌生 我正在尝试让逐行加密器工作 我需要能够在应用程序运行期间将加密行附加到文件中 而不仅仅是一大堆加密所有内容并保存 不过我玩得很开心 这是我的加密器 在我自己多次尝试失败后被无耻地窃取 class Encryption pr
  • 是否有更好的一个衬垫来处理“除非something.new?||something[:key].nil?”

    有没有办法让这个内衬变得更好看 var params key1 key2 unless params blank params key1 blank 就在这里 var params params key1 params key1 key2
  • 使用openssl解密用java加密的aes-gcm

    我有以下 Java 代码 public static void deriveKeyAndIV String password throws Exception SecureRandom random new SecureRandom if
  • 如何将文件的元素放入哈希中? -红宝石

    所以我有一个以下形式的文件 Key1 Value1 Key2 Value2 Key3 Value3 用制表符分隔 我的问题是如何打开这个文件并将其放入哈希中 我曾尝试这样做 fp File open file path fp each do
  • 如何在 mongoid 中使用 or 条件进行查询

    如何在 Mongoid 中使用 or 条件进行查询 这是 OR 在 mongoid 中查询 如果你想要像下面这样的查询 select from user where id 10 or name hitesh 在带有 mongoid 的 Ra
  • Ruby:如何在不创建新实例的情况下检查实例方法的参数?

    在 Ruby 1 9 2 中 您可以使用 method symbol 检查任何方法的参数 如何在不创建新车的情况下检查 Car initialize 方法 class Car def initialize fuel type passeng
  • 通过 ruby​​ 进程共享变量

    我正在编写一个 gem 其中我必须分叉两个进程来启动两个 webrick 服务器 我想通过基类的类方法启动该服务器 因为应该只运行这两个服务器 而不是多个服务器 在运行时 我想调用这两台服务器上的一些方法来更改变量 我的问题是 我无法通过基
  • 使用 CryptoJS 更改密钥 [重复]

    这个问题在这里已经有答案了 我正在使用 CryptoJS 来加密和解密文本 在这里 我只是获取消息并显示加密和解密消息 我使用DES算法进行加密和解密 这是我的 HTML 文件
  • Rails 6:每个用户只能创建一个配置文件

    我目前正在开发 Rails 6 应用程序 我有以下关联 用户有一个配置文件 并且配置文件属于用户 当编辑用户的配置文件时 我最终为该用户提供了两个配置文件 我希望每个用户只有一份个人资料 编辑表单 profile edit html erb

随机推荐

  • 如何在 Matlab fitglm 中获得 R 的零偏差和残差偏差等值?

    在 R 中 拟合 glm 后 您可以获得包含残差偏差和零偏差的摘要信息 这些信息告诉您您的模型与仅包含截距项的模型相比有多好 例如模型 model lt glm formula am mpg qsec data mtcars family
  • 如何编写 azure 函数来触发 azure devops 管道?这可能吗?

    我正在尝试设置一个可以触发 Azure DevOps 构建管道的 Azure 函数 但我不确定如何继续下去 以及是否有可能这样做 我已经有一个可供使用的构建管道 但无法使用 Azure DevOps 已提供的传统触发器 我不能透露原因 但我
  • JQuery - 在第 3 方表单上预填充表单字段

    我的网页上有一个 Netresults 表单 需要预先填充 该表单是使用 javascript 插入到页面中的 因此我无法在源代码中看到表单字段 如果表单位于我的页面上 我将使用以下代码 但由于它不在我的页面上 我不知道如何定位这些字段 有
  • Fuseki 1.0.1 SPARQL 更新返回 404

    我正在尝试学习更新 Fuseki 中的数据 但当我尝试时出现 404 错误 我显然没有做正确的事情 也许这是我的 INSERT 命令 不过我已经尝试过很多了 我正在使用 sparql tpl 上基于 Web 的 SPARQL 界面 我可以让
  • 如何使用自定义 webpack 加载器生成自定义源映射?

    在编写自定义加载程序时 我一直在尝试生成自定义源映射 我的 来源 是几行文字 this is my log lines 我写了一个加载器将其转换为 exports printAll function console log this con
  • 如何解决 Bot Framework Channel Emulator 中的“500 内部服务器错误”错误?

    我正在研究Bot框架技术 最近微软发布了新版本 V3 的bot 我已经使用旧版本开发了机器人 现在我正在尝试将我的机器人升级到新版本 为此 一切正常 但在将我的机器人发布到azure后 然后通过使用发布URL 我尝试在机器人框架通道模拟器
  • GetSubKeyNames 不返回所有键

    我想将软件安装在客户端上 我也使用 WMI 和注册表 我在下面找到了大部分信息HKLM 软件 微软 WINDOWS 当前版本 卸载 然而 例如 Dropbox 并没有出现在那里 Dropbox 位于HKCU所以我也想读这些键 我想很简单 因
  • 惰性评估与急切评估以及双链表构建

    我睡不着 我用 Haskell 编写了构建双链表的小程序 基本语言的属性是惰性求值 请参阅下面的一堆代码 我的问题是我可以在pure函数式语言与eager评价还是不评价 无论如何 有什么属性eager函数式语言必须能够构建这样的结构 杂质
  • Angular Material:当用户按 Enter 键时隐藏自动完成面板

    我目前正在开发一个表格 用户可以通过按 Enter 键来浏览可编辑元素 我也在其中使用了 Angular Material 我有一个 mat form field 其中包含几个使用 mat autocomplete 元素动态创建的输入字段
  • 通过绘图启动的脚本激活范围时,无需在键入之前单击[重复]

    这个问题在这里已经有答案了 我正在为 Google Sheet 编写一个简单的脚本 我有一个标记为 新条目 的按钮 该按钮实际上是一张绘图 其中分配了我的脚本 当用户单击该按钮时 脚本会在指定位置插入一个空行并激活第一列 以便用户可以开始键
  • MySQL - 增加列值或插入数据(如果不存在)

    我有用户访问该网站 用户可以执行一系列不同的操作 我想要一个计数器来计算用户执行该操作的次数 问题是 这是每天 每天都重新开始 所以模型有 ID 用户 操作 时间 日期 我想用这个 但我不能 因为Action不是钥匙 也不可能是钥匙 其他字
  • TensorFlow.Keras ModelCheckpoint 在训练时保存模型,为什么?

    我想知道为什么我们需要在训练时保存模型 在火车开始时保存一次然后只在火车期间保存重量还不够吗 我的意思是 模型在火车过程中没有改变 为什么需要这个布尔值 class ModelCheckpoint Callback save weights
  • Java 相当于 OpenLayers [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个Java库来显示来自各种来源的地图数据 包括shapefile WMS WFS Goog
  • 使用 LINQ 根据两个属性对列表中的项目进行分组

    我有一个Column类如下 public class Column public int LocId get set public int SecId get set public double StartElevation get set
  • 多个意图接收器?

    文件指出 如果Intent可以由多个应用程序处理 系统将提示用户一个对话框 要求他选择应用程序来完成操作 有没有办法让用户选择多个应用程序来一一完成操作 例如 如果我想分享一条消息 我将使用ACTION SEND具有指定的 MIME 类型
  • Ember 选择设置默认值

    即使阅读了大量文档后 我仍然无法完成这个简单的任务 我的模板中有一个选择视图 view Ember Select id id diff contentBinding difficulties optionValuePath content
  • 使用 interop.Excel 的 C# 中的 Excel 范围。范围既为空又不为空?

    我有一个看起来像这样的 Excel 工作表 A1 B1 空白 D1 E1 F1 IE 仅填充第一行 第三列为空白 我使用 interop excel 在 C 中按以下方式解析此内容 Excel Application exApp OpenE
  • Office.js 性能:我应该在一个 Excel.run 函数中投入多少?

    我正在处理一些大型电子表格 约 30 000 行 并遇到一些性能问题 并有以下一些与性能相关的问题 我可以 或者更好的是 我应该塞进一个Excel run功能 我需要考虑哪些事情来确定何时将事情分解为多个Excel run call 一般来
  • 如何消除光线的偏转[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我在 python 中使用 OpenCV 进行图像处理 我的主要问题是光偏转 这些偏转可以通过某种方法消除吗 我在这里实现了很多代码
  • 从 Ruby 打开 RSA 私钥

    I think我知道如何创建自定义加密 RSA 密钥 但如何像 ssh keygen 那样读取加密的密钥 我知道我可以这样做 OpenSSL PKey RSA new File read private key 但随后 OpenSSL 要求