python调用Factordb

概述:

一个factordb调用脚本以及打包的轮子

起因:

前段时间打了个2022DASCTF Apr X FATE,里面有道CRYPTO需要对很多\(n\)查表分解,当时我还没看懂AMM算法所以就没写,这段时间刚把AMM看完就去复现了一下,发现在factordb上对\(n\)查表很麻烦,就去找了找有没有相关的工具可以在python中直接进行查表。

solution:

虽然但是……我还是没找到

最后在一个大佬的GitHub上翻到了factordb的官方api,如下:

http://factordb.com/api?query=

于是就可以比较好的解决这个问题了

通过这个api直接写一个脚本,传入要分解的\(n\)返回一个数组,如下

import requests

def queryFactors(n):
	s=[]
	url="http://factordb.com/api?query="+str(n)
	r = requests.get(url)
	factors=r.json()['factors']
	for f in factors:
		for i in range(f[1]):
			s.append(int(f[0]))
	return s

#举个栗子
'''
n=1062789633774349417938788353001516763303743389381120380522262327123099728631034935663418832664265833959487018276693680850987382421521055508477988016246558095545925414048663082368488342633334571240563
print(queryFactors(n))
#[978009050697262759337388871320370165458800566798280419667959552859180906066907114053826258140106617, 1086686910531802445146659484012613083647370307628438760118376029969836222533970554565751069314622539]
'''

然后打包成一个库,Factors

安装:

pip install Factors-1.0.1.tar.gz

使用:

from Factors import*
n = 12345
print(queryFactors(n))
posted @ 2022-05-09 14:24  上辰  阅读(353)  评论(0编辑  收藏  举报