python的gmpy2模块的使用

  1. 1 背景
  2. 2 安装gmpy2的教程
  3. 3 简介
  4. 4 示例
    1. 4.1 代码
    2. 4.2 运行结果
  5. 5 总结

1 背景

以前都没有做过有关RSA的题目,今天饶有兴致,便开始安装gmpy2模块,但是困难真不是一般的大,自己花费了将近一下午的时间,才只是在kali的python2中安装了gmpy2模块,Windows真是有毒,以后有钱了一定要换台Mac
╭(╯^╰)╮╭(╯^╰)╮╭(╯^╰)╮

2 安装gmpy2的教程

https://www.jianshu.com/p/37565f0ffdc8

https://blog.csdn.net/qq1045553189/article/details/86555791

3 简介

gmpy2是一个C编码的Python扩展模块,它支持多精度算术。除了支持用于多精度整数和有理算术的GMP或MPIR,gmpy2还添加了对MPFR(正确舍入的实数浮点算术)和MPC(正确舍入的复数浮点算术)库的支持。

4 示例

4.1 代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import gmpy2

# 求模幂
print gmpy2.powmod(2, 3, 5)
print gmpy2.powmod(2, 4, 5)
print gmpy2.powmod(2, 5, 5)
print

# 求逆元(常用于RSA)
p = 3
q = 7
e = 7
n = p * q
d = gmpy2.invert(e, (p - 1) * (q - 1))
print d
print

# 判断素数
print gmpy2.is_prime(3)
print gmpy2.is_prime(6)
print

# 欧几里德算法,判断互素
print gmpy2.gcd(2, 3)
print gmpy2.gcd(4, 6)
print

# 扩展欧几里德算法
print gmpy2.gcdext(2, 3)
print gmpy2.gcdext(4, 6)
print

# 开n次方根
print gmpy2.iroot(4, 2)
print gmpy2.iroot(28, 3)

4.2 运行结果

gmpy2

5 总结

通过这次使用gmpy2模块,我这周六的比赛更有信心了,这次比赛肯定能拿下几个flag
(#^.^#)(#^.^#)(#^.^#)


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达,可以邮件至 xingshuaikun@163.com。

×

喜欢就点赞,疼爱就打赏