翼度科技»论坛 编程开发 .net 查看内容

cryptohack wp day(1)

7

主题

7

帖子

21

积分

新手上路

Rank: 1

积分
21
就从头开始吧

第一题 (ASCII)



  1. 一道简单的ASCII码转换,直接用题目的提示代码解就行了
复制代码
  1. ascii=[99, 114, 121, 112, 116, 111, 123, 65, 83, 67, 73, 73, 95, 112, 114, 49, 110, 116, 52, 98, 108, 51, 125]
  2. flag=""
  3. for i in ascii:
  4.     flag+=chr(i)
  5. print(flag)
复制代码
第二题(Hex)
  1.       Hex编码的原理就是将原来8位的二进制字节打断,分成两个4位的,并且在前面加上4个零,进行补位这样一个8位二进制字节就变成了2个8位的二进制字节,在将新得到的2个二进制字符进行16位进制转换得到的新的16位字符串就是Hex的值。
  2.        hex编码就是16进制编码,是字符的[ascii码](https://so.csdn.net/so/search?q=ascii码&spm=1001.2101.3001.7020)值的16进制表示,所以解码时一般先转为ascii码,后转为字符串形式。
复制代码

代码如下:
  1. import binascii
  2. hex ='63727970746f7b596f755f77696c6c5f62655f776f726b696e675f776974685f6865785f737472696e67735f615f6c6f747d'
  3. print(bytes.fromhex(hex))
  4. print(binascii.a2b_hex(hex))
复制代码
或者
  1. from Crypto.Util.number import *
  2. import libnum
  3. hex =0x63727970746f7b596f755f77696c6c5f62655f776f726b696e675f776974685f6865785f737472696e67735f615f6c6f747d
  4. print(libnum.n2s(int(hex)))##注意,libnum库中将16进制转字符串时,必须转为int类型,不然会报错
  5. print(long_to_bytes(hex))
复制代码
像这题题,可以应用python的很多库,如libnum库,binascii库,等等。
第三题(base64)


代码如下:
  1. import base64
  2. from Crypto.Util.number import *
  3. hex =0x72bca9b68fc16ac7beeb8f849dca1d8a783e8acf9679bf9269f7bf
  4. base = long_to_bytes(hex)
  5. flag=base64.b64encode(base)
  6. print(flag)
复制代码
先解16进制码为字节,然后再解base64
第四题


密文:11515195063862318899931685488813747395775516287289682636499965282714637259206269
代码如下:
  1. from Crypto.Util.number import *
  2. import libnum
  3. s = 11515195063862318899931685488813747395775516287289682636499965282714637259206269
  4. print(long_to_bytes(s))
  5. print(libnum.n2s(s))
复制代码
来源:https://www.cnblogs.com/Cryglz/archive/2023/05/04/17369960.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具