public_key.pem and private.key
public_key_pem = File.read(ENV['LOCAL_PUB_KEY'])
public_key = OpenSSL::PKey::RSA.new(public_key_pem)
data_to_encrypt = "Hello arvind"
encrypted_data = public_key.public_encrypt(data_to_encrypt)
private_key_pem = File.read(ENV['LOCAL_PRI_KEY'])
private_key = OpenSSL::PKey::RSA.new(private_key_pem)
decrypted_data = private_key.private_decrypt(encrypted_data)
---------------------------------------------
public_key.der and private.key
public_key_pem = File.read(ENV['LOCAL_PUB_KEY_DER'])
public_key = OpenSSL::PKey::RSA.new(public_key_pem)
data_to_encrypt = "This is the message to be encrypted"
encrypted_data = public_key.public_encrypt(data_to_encrypt)
private_key_pem = File.read(ENV['LOCAL_PRI_KEY'])
private_key = OpenSSL::PKey::RSA.new(private_key_pem)
decrypted_data = private_key.private_decrypt(encrypted_data)
---------------------------------------------
public_key.cer and private.key
public_key_pem = File.read(ENV['LOCAL_PUB_KEY_DER'])
public_key = OpenSSL::PKey::RSA.new(public_key_pem)
data_to_encrypt = "Rinku"
encrypted_data = public_key.public_encrypt(data_to_encrypt)
private_key_pem = File.read(ENV['LOCAL_PRI_KEY'])
private_key = OpenSSL::PKey::RSA.new(private_key_pem)
decrypted_data = private_key.private_decrypt(encrypted_data)
---------------------------------------------
public_key.cer and private.der
public_cer = File.read('./public_key.cer')
public_key = OpenSSL::PKey::RSA.new(public_cer)
data_to_encrypt = "Rinku k"
encrypted_data = public_key.public_encrypt(data_to_encrypt)
private_der = File.read('./private.der')
private_key = OpenSSL::PKey::RSA.new(private_der)
decrypted_data = private_key.private_decrypt(encrypted_data)
----------------------------------------------------
Hybrid Encryption: Combining Symmetric and Asymmetric Techniques
require 'openssl'
symmetric_key = OpenSSL::Cipher.new('AES-256-CBC').random_key
cipher = OpenSSL::Cipher.new('AES-256-CBC')
cipher.encrypt
cipher.key = symmetric_key
encrypted_data = cipher.update("Rinku") + cipher.final
rsa_public_key = OpenSSL::PKey::RSA.new(File.read('./public_key.cer'))
encrypted_symmetric_key = rsa_public_key.public_encrypt(symmetric_key)
rsa_private_key = OpenSSL::PKey::RSA.new(File.read('./private.der'))
decrypted_symmetric_key = rsa_private_key.private_decrypt(encrypted_symmetric_key)
decipher = OpenSSL::Cipher.new('AES-256-CBC')
decipher.decrypt
decipher.key = decrypted_symmetric_key
decrypted_data = decipher.update(encrypted_data) + decipher.final
puts decrypted_data # "Secret message"
--------------------------------------------------------------
Asymmetric encryption in Ruby On Rails OR Private Public key encryption
require 'openssl'
require 'base64'
public_key_file = 'public.pem';
string = 'Hello World! fff';
public_key = OpenSSL::PKey::RSA.new(File.read('./public_key.cer'))
encrypted_string = Base64.encode64(public_key.public_encrypt(string))
to
encrypted_string = public_key.public_encrypt(string) Green wali ek sath kaam karegi
print encrypted_string, "\n"
password = 'boost facile'
private_key = OpenSSL::PKey::RSA.new(File.read('./private.der'),password)
string = private_key.private_decrypt(Base64.decode64(encrypted_string))
to
string = private_key.private_decrypt(encrypted_string)
print string, "\n"