Tag: 加密 非对称

从Ruby打开RSA私钥

我想我知道如何创建自定义加密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文件,然后检查其内容时,它似乎在键的开头和结尾有其他字符。 这是正常的吗? 我真的不了解这些安全性的东西,但我正在努力学习。 我做错了什么?

Ruby:使用私钥/公钥进行文件加密/解密

我正在寻找一种文件加密/解密算法,它满足以下要求: 算法必须可靠 对于相当大的文件,算法应该很快 私钥可以通过某些参数生成(例如,密码) 生成的私钥必须与公钥兼容(公钥只生成一次并存储在数据库中) 是否有建议算法的Ruby实现?