class Struggle::Rsa
Public Class Methods
generate(dir)
click to toggle source
Rsa.generate
(“/Users/apple/object”) => /Users/apple/object/private_key.pem ,public_key.pem 创建2048位秘钥文件
# File lib/struggle/rsa.rb, line 14 def self.generate(dir) pk = OpenSSL::PKey::RSA.generate(2048) File.write(dir + "/private_key.pem", pk.to_pem) File.write(dir + "/public_key.pem", pk.public_key.to_pem) end
new(keyfile)
click to toggle source
实例化Rsa类,keyfile是秘钥文件地址(公钥或私钥)文件格式pem
# File lib/struggle/rsa.rb, line 5 def initialize(keyfile) keystr = File.read(keyfile) if keystr @@rsa = OpenSSL::PKey::RSA.new(keystr) end end
Public Instance Methods
private_decrypt(value)
click to toggle source
私钥解密
# File lib/struggle/rsa.rb, line 26 def private_decrypt(value) @@rsa.private_decrypt(Base64.decode64(value.force_encoding("UTF-8"))) unless value.blank? end
private_encrypt(value)
click to toggle source
私钥加密
# File lib/struggle/rsa.rb, line 21 def private_encrypt(value) Base64.encode64(@@rsa.private_encrypt(value.force_encoding("UTF-8"))) unless value.blank? end
public_decrypt(value)
click to toggle source
公钥解密
# File lib/struggle/rsa.rb, line 36 def public_decrypt(value) @@rsa.public_decrypt(Base64.decode64(value.force_encoding("UTF-8"))) unless value.blank? end
public_encrypt(value)
click to toggle source
公钥加密
# File lib/struggle/rsa.rb, line 31 def public_encrypt(value) Base64.encode64(@@rsa.public_encrypt(value.force_encoding("UTF-8"))) unless value.blank? end
sign(value)
click to toggle source
签名
# File lib/struggle/rsa.rb, line 41 def sign(value) @@rsa.sign("sha1", value) end