我编写了一个可以加密/解密内容的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])