首页 > 其他分享 >CTF Crypto 常用函数库的常见函数使用

CTF Crypto 常用函数库的常见函数使用

时间:2023-08-11 11:00:51浏览次数:34  
标签:gmpy2 函数库 int Crypto param CTF return mpz 最大公约数

发现有些博客里面写的不是很全,而且自己也懒得去找。

一个菜鸡一边学一边补充的,没写完。

Crypto.Util.number

  1. \(int\rightarrow bytes\)
# long_to_bytes()
'''
将整数转化成byte字符串
:param	要转化的数字(int)
:return	转化结果(byte)
'''
>>> long_to_bytes(112615676672893) 
b'flag{}'
  1. \(bytes\rightarrow int\)
# bytes_to_long()
'''
将byte字符串转化为整数
:param	要转化的二进制字符串(byte)
:return	转化结果(int)
'''
>>> bytes_to_long(b'flag{}')
112615676672893
  1. 获取指定二进制位数的质数
# getPrime()
'''
获取随机的指定位数(二进制位)的质数
:param	质数的位数(int)
:return	对应位数的质数(int)
'''
>>> getPrime(16)
62297
  1. 计算乘法逆元
# inverse()
'''
计算乘法逆元
:param	原数(int)
:param	模数(int)
:return	原数的乘法逆元(int),若不存在则报错
'''
>>> inverse(2,9)  
5
  1. 最大公约数
# GCD()
'''
计算两数的最大公约数
:param	数字一(int)
:param	数字二(int)
:return	最大公约数(int)
'''
>>> GCD(114, 514)
2

gmpy2

  1. 开n次方
# iroot()
'''
开n次方
:param	被开方数(int)
:param	方次n(int)
:return	(开方结果(向下取整), 是否开尽)(tuple)
'''
>>> gmpy2.iroot(16, 4) 
(mpz(2), True)
>>> gmpy2.iroot(16, 5) 
(mpz(1), False)
  1. 最大公约数
# gmpy2.gcd()
'''
计算两数的最大公约数
:param	数字一(int)
:param	数字二(int)
:return	最大公约数(int)
'''
>>> gmpy2.gcd(24, 20)
mpz(4)
  1. 拓展欧几里得定理
# gmpy2.gcdext() 
'''
计算两数的最大公约数及对应的a, b系数
:param	数字一(int)
:param	数字二(int)
:return	(最大公约数, a, b)(tuple)
'''
>>> gmpy2.gcdext(114, 514)  
(mpz(2), mpz(-9), mpz(2))
  1. 高次模幂
# gmpy2.powmod()
'''
计算高次模幂。
:param	底数(int)
:param	指数(int)
:param	模数(int)
:return	计算结果(int)
'''
>>> gmpy2.powmod(114, 514, 1919810) 
mpz(290606)
  1. 下一个质数
# gmpy2.next_prime()
'''
找到下一个质数。
:param	基数(int)
:return	下一个质数(int)
'''
>>> gmpy2.next_prime(4)
mpz(5)

sagemath

先摸了

标签:gmpy2,函数库,int,Crypto,param,CTF,return,mpz,最大公约数
From: https://www.cnblogs.com/Lovechan/p/17622466.html

相关文章

  • CTFer成长记录——CTF之Web专题·buuctf—admin
    一、题目链接https://buuoj.cn/challenges#[HCTF%202018]admin二、解法步骤  本题页面十分简单,  在源代码中发现:  猜测需要用admin进行登陆,如果在注册模块用admin进行注册的话,会提示已被注册,那么可以肯定与admin有关。  在登陆页面用弱口令试试,发现不行。  那么......
  • CTFer成长记录——CTF之Web专题·攻防世界—lottery
    一、题目链接https://adworld.xctf.org.cn/challenges/list?rwNmOdr=1691651594927二、解法步骤  打开网页,这是一个买彩票换flag的网站。题目附件提供了源码:  在网站上探索一番,发现买flag需要9990000R,获得资金的方式就通过buy功能买彩票。  那么我们随便输入一个数字,......
  • [SWPUCTF 2021 新生赛]easyupload3.0
    [SWPUCTF2021新生赛]easyupload3.0题目来源:nssctf题目类型:web涉及考点:文件上传easyupload2.0就不写wp了,具体做法跟1.0差不多,不过在bp中把后缀名改成pht上传即可,1.0详见:[SWPUCTF2021新生赛]easyupload1.0如果服务器是Apache的话,配置文件可以添加这些php别名进行解析:php3,p......
  • [SWPUCTF 2021 新生赛]easyupload1
    [SWPUCTF2021新生赛]easyupload1.0题目来源:nssctf题目类型:web涉及考点:文件上传真服了,昨天写了wp忘记传了最近准备学一下文件上传,就拿这道题开始吧1.简单介绍一下文件上传漏洞文件上传漏洞是指由于程序员在对用户文件上传部分的控制不足或者处理缺陷,而导致的用户可以越......
  • CTFSHOW-SSTI
    CTFSHOW-SSTIweb361?name={{().__class__.__base__.__subclasses__()[132].__init__.__globals__['popen']('cat/flag').read()}}web362?name={{x.__init__.__globals__['__builtins__'].eval('__import__("os").popen(&......
  • 2023 *CTF flagfile
    flagfile格式文件是mgc,题目提示用file命令查看观察后,忽略有规律的,取出没规律的将红圈的数字异或,得到第一组数据这里发现后面是ffff,从这里隔开,异或的数据作为第二组异或的数据都将其转为十进制后,发现第二组可能是ascII编码,转化得到:f_o_a__lhy_s_y^^hete_ug___goo_t_第一......
  • sql注入CTF常见考点方法总结
    SQL注入一、基本注入流程1.判断是否存在注入点(1)?id=xx不同,返回结果不同,则存在注入。(2)数字型判断:​ and1=1正常​ and1=2报错​ 则不存在注入​ 字符型判断:​ 1'and'1'='1正常​ 1'and'1'='2报错​ 则存在注入(3)判断注入点及类型:​ a'......
  • [NISACTF 2022]babyserialize
    非常典型的一道POP链构造题目源码<?phpinclude"waf.php";classNISA{public$fun="show_me_flag";public$txw4ever;publicfunction__wakeup(){if($this->fun=="show_me_flag"){hint();}......
  • bjdctf_2020_babyrop
    bjdctf_2020_babyrop0x01注意这题位64位。32位和64位传参有区别思路:利用puts函数泄露出puts函数真实地址通过puts函数地址计算出libc基地址,从而计算出system和binsh的真实地址构造rop链栈溢出getshellputs函数通过poprdi;ret传参用ROPgadget可以找到0x02exp#enc......
  • [HarekazeCTF2019]baby_rop2
    [HarekazeCTF2019]baby_rop264位的ret2libc30x01利用printf泄露libc版本和基地址,传参的时候需要传入格式化字符串%s给寄存器rdi(程序中第二个printf函数自带,返回至该格式化字符串地址即可);并将想要泄露的read_got传给寄存器。0x02expfrompwnimport*fromLibcSearcherimp......