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))