Ruby rsa加密

时间:2013-02-12 16:58:04

标签: ruby rsa

我编写了一个可以加密/解密内容的Ruby脚本

我的问题是在d中计算generate_rsa这是公式

e * d = 1 mod n2 

我不想要一个解决方案,只是在正确的方向上轻推

谢谢你cevin

这里是我的代码

def generate_rsa
  p = 62731
  q = 87869
  n = p * q
  n2 = (p-1)*(q-1)
  e = n2/2
  d = (1 % n2 )/ e  # <= ??
  rsa = { :e => e, :d => d, :n => n, :n2 => n2}
  return rsa
end


def encrypt(message, e, n)
   byte = []
   ms = []
   crypt = []
   message.each_char do |c|
     byte << c.ord
   end
   byte.each do |b|
     if b.to_s.length < 3
       ms << "0"+b.to_s
     else
       ms << b  
     end                    
   end  
   puts ms.inspect

   ms.each do |b|
     crypt << c = b.to_i**e % n
   end
   return crypt
end


def decrypt(message, d, n)
   m = ""
   message.each do |c|
     m += (c**d % n).to_i.chr
   end  
   return m
end

key = generate_rsa
puts "your message ?"
print "=> "; m = gets.chomp

e = encrypt(m, key[:e], key[:n])

puts decrypt(e, key[:d], key[:n])

0 个答案:

没有答案