• XCTF Normal_RSA


    这题本来算是很常规的rsa了,下载附件
    在这里插入图片描述
    发现有个公钥文件,还有一个加密文件,这种题之前有遇到一次,做法和这个类似,上次那个是用rsa的库,直接解的,这次直接用常规的,好像更简单,记录下模板
    记事本打开那个公钥文件,放到在线网站上面解开。
    在这里插入图片描述
    n是十六进制的,拿去抓换成十进制的数字,然后分解p,q
    在这里插入图片描述
    写脚本跑就完事了

    import rsa
    import binascii
    import sys
    import gmpy2
    import re
    from Crypto.Util import number
    def bytes2num(b):
        s='0x'
        for x in b:
            tmp=str(hex(x))[2:]
            if len(tmp)==2:
                pass
            else:
                tmp='0'+tmp
            #print(tmp)
            s+=tmp
            num=int(s,16)
        return num
    #将 10 进制数值按照 ascii 码转为字符串
    def num2str(n):
        tmp=str(hex(n))[2:]
        if len(tmp)%2==0:
            pass
        else:
            tmp='0'+tmp
        s=''
        for i in range(0,len(tmp),2):
            temp=tmp[i]+tmp[i+1]
            s+=chr(int(temp,16))
        return s
    r=open("flag.enc","rb")
    r=r.read()
    r=bytes2num(r)
    e=65537
    n=87924348264132406875276140514499937145050893665602592992418171647042491658461
    p=275127860351348928173285174381581152299
    q=319576316814478949870590164193048041239
    d=gmpy2.invert(e,(p-1)*(q-1))
    print(d)
    m=pow(r,int(d),n)
    print(num2str(m))
    
    
  • 相关阅读:
    JS获取浏览器信息及屏幕分辨率
    div + css 让img标签图片在div中等比缩放显示
    java 对于表情和特殊字符的转码解码处理
    VS Code 快捷键设置
    jq 对象获取总结大全
    java Date时间格式工具类DateUtil
    Linux云服务器下Tomcat部署超详细
    文件操作模式
    文件处理
    字符编码
  • 原文地址:https://www.cnblogs.com/YenKoc/p/12779879.html
Copyright © 2020-2023  润新知