安装
git clone https://github.com/ius/rsatool.git
cd rsatool
使用
功能:
已知p.q生成私钥文件 .key/.pem(如果纯数字根据数学工具可以求出d然后得出m,但我在题中碰到的是python脚本文件 里面需要私钥文件而不只是数字 py如下)
import sys
import base64
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP
if __name__ == '__main__':
cipher = open("flag.enc", "r").read()//
key = open("priv.key", "r").read()//这里需要打开priv.key文件 条件没有给出所以需要自己生成
rsakey = RSA.importKey(key)
rsakey = PKCS1_OAEP.new(rsakey)
decrypted = rsakey.decrypt(base64.b64decode(cipher))
print(decrypted)
格式:
--参数 -o :输出文件 -f 格式化后生成公钥和私钥文件
python rsatool.py -p -q -o priv.key//下图所示
python rsatool.py -f PEM -o key.pem -n -d //格式都可以
!!!注意:需要在python3下 且一定要先cd处于rsa目录下
私钥文件如图所示
使用时出现的问题
在我python decrypt.py后报错
SyntaxError: Missing parentheses in call to ‘print‘.
由于Python3和Python2版本不同,print函数语法也不同造成的
把decrypt.py里的 print加上()即可
!!!还有报错python无法打开时 文件名很有可能出错了
RSA参数说明
公钥(e,n)e一般是65537
私钥(d,n)
n=p*q l=(p-1)(q-1)
(e*d)mod l=1