crypto 入门

news/2025/3/16 14:44:41/文章来源:https://www.cnblogs.com/lajixiongmao/p/18234003

crypto1
看提示发现密文形式很像flag,加上后面有一个倒序,发现密文倒过来就是flag

crypto2
打开是一段加密文本,先用浏览器的控制台试试,按住F12打开控制台,复制,enter,就有了

crypto3

打开是一段颜文字,试试用AAencode解密,

crypto4
题目要求我们计算d的值,根据RSA算法的原理进行计算,利用python脚本


获得d的值
crypto5
同4


获得m的值
crypto6
打开文件,发现U2FsdGVkX1开头的可能是Rabbit,AES,DES,后面提示密钥和加密方式,应该是Rabbit加密

在线解密,获得flag

crypto7
打开文本发现,全是ook,ook编码即是BrainFuck编码,用在线解码https://www.splitbrain.org/services/ook

也是OK了
crypto8



用这个https://www.nayuki.io/page/brainfuck-interpreter-javascript

crypto9
解压需要密码,ARCHPR进行爆破

使用在线解码 :Serpent Encryption – Easily encrypt or decrypt strings or files

crypto10
提示是明文,打开是这个

直接复制到浏览器看看啥玩意


crypto11
数了一下只有31位,使用md5解密

输入发现就是flag
crypto0
第一眼发现这个很像ctf的形式,这里可以联想到凯撒密码,字母发生了偏移,加上我们知道flag的形式,不难看出我们所有字母向前偏移一位就可以获得flag

flag{hello_ctf}
crypto12
这一串和凯撒很像,但是发现不能获得flag,那有可能是埃特巴什码,

解码获得flag
flag{atbase_code_from_ctfshow}
发现不对,正确的为flag{Atbase_code_from_ctfshow}
crypto13
bace家族,因为我们不知道加密了几次,所以通过python进行暴力破解
import base64
filename = r"C:\Users\lenovo\Desktop\base家族\base家族\base.txt"
with open(filename) as f:
s = f.read()
while True:
try:
s = base64.b16decode(s)
continue
except:
pass
try:
s = base64.b32decode(s)
continue
except:
pass
try:
s = base64.b64decode(s)
continue
except:
pass
break
print(s)
得到结果
b'flag{b4Se_Fami1y_Is_FUn}'
crypto14
一看就是二进制,但是flag一般都尉字符数字型,应该是多层加密,不懂就看wp
二进制转换为十六进制,十六进制转化为字符串,发现base64无法解密,用脚本得base64正确编码

修改此处的 s

s = '3EP/3VNFFmNEAnlHD5dCMmVHD5ad9uG'
flag_exp = 'Zmxh' # flag{xxxx...} 开头的字符串的 base64 编码一定是 Zmxh 开头

import base64

base64_table = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
def base64_offset(text):
'''
计算 base64 表的偏移量
'''
global base64_table
return base64_table.index(text)

def main():
global base64_table

# 计算偏移量
diff = base64_offset(flag_exp[0]) - base64_offset(s[0])
index = []
for one in s:index.append(base64_offset(one) + diff)text = ''
for i in index:text += base64_table[i]
if len(text)%4!=0:text = text + "=" * (4-(len(text)%4))
print(f'base64 解码结果:{text}')
print(f'明文:{base64.b64decode(text).decode()}')

if name == 'main':
main()
用大佬脚本获得flag
flag{看我长不长?}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/720573.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实验20-智能换脸

changeface.pyimport cv2 import dlib import numpy import sysPREDICTOR_PATH = "./shape_predictor_68_face_landmarks.dat" SCALE_FACTOR = 1 FEATHER_AMOUNT = 11 # 代表各个区域的关键点标号 FACE_POINTS = list(range(17, 68)) MOUTH_POINTS = list(range(48, …

在线编辑涉密的Word文档,只读/禁止编辑/禁止复制/禁止另存/禁止打印

在日常办公环境中,保密信息的安全性是至关重要的,我们经常会需要在线预览编辑涉密的Word文档,但是又要求这些涉密的文档只能看,只读打开/禁止编辑/禁止复制/禁止另存/禁止打印,这时候该如何实现呢?猿大师办公助手可以帮您做到这些!猿大师办公助手可以把本地微软Office或…

实验19-使用keras完成语音识别

wavs_to_model.pyimport wave import numpy as np import osimport keras from keras.models import Sequential from keras.layers import Densenum_class = 0 # 加载的语音文件有几种类别 labsIndName=[] ## 训练集标签的名字 ["seven","stop"]# …

使用Wesky.Net.Opentools库,一行代码实现实体类类型转换为Json格式字符串

安装1.0.10以及以上版本的 Wesky.Net.OpenTools 包 包内,该功能的核心代码如下: 自定义属性:实体类JSON模式生成器: 使用方式:引用上面的1.0.10版本或以上的包。如果实体类有特殊需求,例如映射为其他名称,可以用OpenJson属性来实现。实体类对象案例如下:上面实体类,…

RFS_Server_06 上传并发布数据

操作描述:云服务器Ubuntu20.04系统Docker中有两个容器:Postgres容器和GeoServer容器。将数据存储至Postgres数据库容器中,并通过GeoServer连接,发布地图服务。 此文档中使用的Postgres数据库名称为pg01,GeoServer服务器名称为geoserver01。 1 基础操作:使用工具连接云…

vivado与modelsim联合仿真

写在前面:联合仿真需要版本对应,我的2020的modelsim和2020的vivado是可以用的。如果不对应,下边会编译报错。 第一步,编译仿真库文件。点击菜单栏Tools-->Compile Sim Libary,第一行Simulator选择Modelsim接下来Family选择你需要的器件对应的Family。Compiled library …

深度学习--风格迁移 原理以及实现--84

目录1. 简介4. 损失函数 参考链接:https://blog.csdn.net/ssshyeong/article/details/127092354 1. 简介 Image Style Transfer Using Convolutional Neural Networks:Gram矩阵(CVPR2016) 链接 Texture Synthesis Using Convolutional Neural Networks 图像经过卷积层后得到的…

Body AdvancedBrep Geometry

Body AdvancedBrep Geometry Body Brep Geometry是通过边界表示模型(包括NURBS)表示产品的三维形状。应使用保持该几何表示的IfcShapeResentation的以下属性值:IfcShapeRepresentation.RepresentationIdentifier = Body IfcShapeRepresentation.RepresentationType = Advanc…

node.js + mysql实现基本的增删改查功能(保姆级教程---2优化版)

node.js + mysql实现基本的增删改查(保姆级教程---2优化版)上一个实现对增删改查功能都写在同一个文件里,代码过于冗余,我认为可以优化,分开写在不同文件里面,使得更加直观。废话不多说,直接进入主题:对之前的代码进行抽离:db.js文件(用于数据库的连接,并导出连接供…

虚幻中实现本地双人的输入设备分别控制需要的Pawn

想要实现双人成行游戏中的双输入设备(双输入设备指的是一个键鼠和一个手柄,或者两个手柄)分别控制玩家1和玩家2,同时可以动态插拔设备切换对应的Pawn的控制权;本文是对探索并实现此功能的一个解决思路记录。1、前期准备和知识点梳理 1.1 本地多玩家 LocalPlayer 平常我们运…

HiPPO: Recurrent Memory with Optimal Polynomial Projections

目录概Motivation代码Gu A., Dao T., Ermon S., Rudra A. and Re C. HiPPO: Recurrent memory with optimal polynomial projections. NIPS, 2021.概 看下最近很火的 Mamba 的前身. 本文其实主要介绍的是一个如何建模历史信息在正交基上的稀疏的变化情况.Motivation对于一个函数…