还在加载 请稍等一下辣ヾ(≧▽≦*)o . . .

Python gmpy2模块解RSA


前言

在做题的时候,发现,Python的gmpy2这个模块特别爽,写一篇文章,防止自己忘记


一.gmpy2模块RSA里面常用函数使用

1.求大整数x模m的逆元y

gmpy2.invert()

2.模幂运算

gmpy2.powmod(c, d, n)	#求的是c的d次方modn

可以求d,如下详细代码。

import gmpy2,binascii
e = 65537
p = 104046835712664064779194734974271185635538927889880611929931939711001301561682270177931622974642789920918902563361293345434055764293612446888383912807143394009019803471816448923969637980671221111117965227402429634935481868701166522350570364727873283332371986860194245739423508566783663380619142431820861051179
q = 140171048074107988605773731671018901813928130582422889797732071529733091703843710859282267763783461738242958098610949120354497987945911021170842457552182880133642711307227072133812253341129830416158450499258216967879857581565380890788395068130033931180395926482431150295880926480086317733457392573931410220501
c = 4772758911204771028049020670778336799568778930072841084057809867608022732611295305096052430641881550781141776498904005589873830973301898523644744951545345404578466176725030290421649344936952480254902939417215148205735730754808467351639943474816280980230447097444682489223054499524197909719857300597157406075069204315022703894466226179507627070835428226086509767746759353822302809385047763292891543697277097068406512924796409393289982738071019047393972959228919115821862868057003145401072581115989680686073663259771587445250687060240991265143919857962047718344017741878925867800431556311785625469001771370852474292194
n = p*q
fn = (p-1)*(q-1)
d = gmpy2.invert(e,fn)				#求d
m = gmpy2.powmod(c,d,n)				#求m
print(binascii.unhexlify(hex(m)[2:]))

文章作者: 坂琴
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 坂琴 !
评论
  目录