zoukankan      html  css  js  c++  java
  • buuctf rsa 解题

    下载附件后得到以下文件

     

    把pub.key放到linux中OpenSSL解密即可 用到如下命令

    openssl rsa -inform PEM -in pub.key -pubin -text -out Key1_pub.txt
    或者是直接用在线网站解析(http://ctf.ssleye.com/pub_asys.html)
    得到如下结果
     
    可见 e和n都已经出来结果了 利用素数在线分解网站分解n(factordb.com)

     得到p和q 再用脚本跑出d的值 (需要安装gmpy2模块)

    import gmpy2
    p=3
    q=11
    e=3
    d = gmpy2.invert(e,(q-1)*(p-1))
    print (d)

    最后的脚本是 (需要安装rsa模块)

    import rsa

    e= 65537
    n= 86934482296048119190666062003494800588905656017203025617216654058378322103517
    p= 285960468890451637935629440372639283459
    q= 304008741604601924494328155975272418463
    d= 81176168860169991027846870170527607562179635470395365333547868786951080991441

    key = rsa.PrivateKey(n,e,d,q,p)        

    with open("C:\Users\MIKEWYW\Desktop\flagenc.txt","rb") as f: 
        f = f.read()
        print(rsa.decrypt(f,key))   

    得到flag为

    flag{decrypt_256}       

     

     

     

  • 相关阅读:
    CSS快速入门
    Kafka (一) 核心概念
    软件工程模型
    函数式编程
    spark计算操作整理
    HBase 文件合并
    HBase 数据存储结构
    目的论浅谈
    PHP8的注解
    JS的移入移除
  • 原文地址:https://www.cnblogs.com/akger/p/13760806.html
Copyright © 2011-2022 走看看