日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RSA已知密文和公钥

發布時間:2024/3/12 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RSA已知密文和公钥 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

方法一:利用RsaCtfTool工具(kali虛擬機中)

已知公鑰(自動求私鑰)–publickey,密文–uncipherfile

命令:python RsaCtfTool.py --publickey 公鑰文件 --uncipherfile 加密的文件

方法二:利用公鑰文件用openssl工具解出e、n,然后python3腳本解出明文

之前有一篇文章寫過

1.打開kali虛擬機,用openssl解出e、n(不推薦)

命令:openssl rsa -pubin -text -modulus -in warmup -in gy.key

**e為65537,n還比較短,用python先轉換成10進制

2.用腳本從公鑰文件中解出n、e (推薦!!)

# -*- coding: cp936 -*- from Crypto.PublicKey import RSA#1.從公鑰文件中分解n和e public_key = RSA.importKey(open(r"G:\ctf\CTF題目\8eec4a4af1e14eb08648c8fda7660a0f\8eec4a4af1e14eb08648c8fda7660a0f\RSA256\gy.key",'rb').read()) n = public_key.n e = public_key.e print('N:',n) print('E:',e)

運行結果

方法2 后續 對n進行因數分解

方式1:登錄網站http://factordb.com/,解出p和q

方式2:使用yafu工具

(常用于比較大的整數分解)自動整數因式分解,在RSA中,當p、q的取值差異過大或過于相近的時候,使用yafu可以快速的把n值分解出p、q值!

用法:

到此,已經獲取到RSA的全部參數

p = 273821108020968288372911424519201044333

q = 280385007186315115828483000867559983517

n=76775333340223961139427050707840417811156978085146970312315886671546666259161

e=65537

#coding:utf-8 import gmpy2 import rsa p = 273821108020968288372911424519201044333 q = 280385007186315115828483000867559983517 n = 76775333340223961139427050707840417811156978085146970312315886671546666259161 e = 65537 d = int(gmpy2.invert(e,(p-1)*(q-1))) privatekey = rsa.PrivateKey(n,e,d,p,q) with open("E:\\fllllllag.txt","rb") as f:print(rsa.decrypt(f.read(),privatekey).decode())

折騰了好久,原來KALI上面我再python2里面安裝了rsa可以了,

總結

以上是生活随笔為你收集整理的RSA已知密文和公钥的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。