我正在ruby中为一个大学课程的项目编写一个diffie-hellman密钥交换的实现。我需要生成至少500位长的大(安全)素数。有任何想法吗?我应该使用OpenSSL库吗?如果是这样,你会推荐什么功能?
答案 0 :(得分:2)
使用openssl gem
OpenSSL :: BN :: rand
您可以指定所需的大小 - 例如OpenSSL :: BN :: rand(212)
答案 1 :(得分:0)
OpenSSL::BN::generate_prime(500)
会这样做,就像abdollar说的那样。
确保将require 'openssl'
放在顶部以将其包含在ruby文件中
要检查正确的位数,只需运行OpenSSL::BN::generate_prime(500).to_i.to_s(2).length
即可打印出二进制数,它将打印出500,前导位将为1