libnum库的安装与简单使用
2018-11-28 15:32
113 查看
看题的时候发现了libnum库,觉得还行,mark下来留着以后用。
0x00
libnum库是一个关于各种数学运算的函数库,它包含common maths、modular、modular squre roots、primes、factorization、ECC、converting、stuff等方面的函数,使计算变得非常简便。
0x01 安装
Linux:
git clone https://github.com/hellman/libnum cd libnum python setup.py install
Windows: 下载并解压缩它
cd libnum python setup.py install
0x02 常用的Converting
数字型(不论是十六进制还是十进制)与字符串之间的转换:
import libnum s="flag{aaa}" print(libnum.s2n(s)) import libnum n=0x1889377532526823825789 print(libnum.n2s(n))
这个转换不用在意十六进制的位数是否为偶数
二进制与字符串之间的转换:
import libnum b=''0100110001111001011100100110100101100011'' print(libnum.b2s(b)) 二进制的位数最好是8的倍数 import libnum s='Lyric' print(libnum.s2b(s))
0x03 质数&因数分解
生成质数:
libnum.generate_prime(1024)``` 因数分解:
libnum.factorize(1024) ```
0x04 其他的
某道ctf中用于解题的脚本
#!coding:utf-8 #RSA import libnum p = 153342497773165720646471265753416937042378585974980600696228054280777067742118708748260148517704664270966750151230879697775745552153863038444052153549264336387543725044459125347571130674447630098572217293190874462747269265287826289527205379087607586543990164027856167617915226681078528645859423680436167557483 q = 129436166908331611554181128183182589454341960422674433223367230133752416435382709963204302422852744109315802741839344452057748805269289759475931297256986800620920742486276489445279916851138781600867108041340752127975698302831477903370939720026728065273734373673806527712975351406042878379903498709089420733911 n = p * q e = 65537 c = 3936037472808777071308929516154413904323194935340248548327659414834313812796990403988095925642368079268517801058041656316181783492880322278956562595000260504254255037928037412478862828849501974686520351939250369196179274580006017942557434135384292957158484997604383679828898427028204052111920452543131945953240230799711698405726536262211948501121455918845580494839990978306064590105574542739676508765285583405238287804427122294772381588739840326134102495086948522002204793929245624099798045204501372180048163169180023176545149820275841071238390132249159995705693884766122963689536408510312667760860122892135226523829 phi = (p - 1) * (q - 1) d = libnum.modular.invmod(e, phi) m = libnum.n2s(pow(c, d, n)) print(m)
相关文章推荐
- 使用WiX制作简单MSI安装程序
- 使用WiX制作简单MSI安装程序
- Git的初次使用 ; Git常用命令查询 ; Git push ; Git pull 2011-12-16 17:32 在介绍安装和简单使用前,先看一下百度百科中的简介吧: ———————————
- Ant安装设置,简单使用测试
- yum的安装的使用搭建简单的apache服务器
- MemSQL 的安装和简单使用 比Mysql快30倍的关系型数据库
- Rails插件安装、使用(2)——FCKEditor的简单安装
- CKEditor 3.0的简单安装配置使用
- Ubuntu Server 10.10 安装 SVN 及简单使用(装载)
- MongoDB Primary---->简要介绍 和 Linux安装MongoDB 并 简单使用
- eclemma的安装与简单使用教程
- smarty详解一:简介、安装、快速入门、变量的简单使用
- SVN的安装与简单使用
- sqlserver安装和简单的使用
- VisualStudio 2010 Beta1 开始简单用一下(2008共存)-从安装到使用发几张图片 (*^__^*)
- CKEditor 3.0(FCKEditor3.0)的简单安装配置使用
- 最简单的 cvs 安装与使用
- PostgreSQL安装和简单使用
- linux下最好的chm阅读器KchmViewer,安装使用/与oklular,xCHM,gnochm简单比较
- eclipse 安装SVN以及简单使用