首页 > 其他分享 >crypto 入门

crypto 入门

时间:2024-06-05 22:13:02浏览次数:8  
标签:index 加密 入门 text base64 crypto flag table

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{看我长不长?}

标签:index,加密,入门,text,base64,crypto,flag,table
From: https://www.cnblogs.com/lajixiongmao/p/18234003

相关文章

  • STM32 HAL库开发——入门篇(3):OLED、LCD
    源自正点原子视频教程:【正点原子】手把手教你学STM32HAL库开发全集【真人出镜】STM32入门教学视频教程单片机嵌入式_哔哩哔哩_bilibili一、OLED二、内存保护(MPU)实验2.1内存保护单元 三、LCD3.1显示屏分类3.2LCD简介 3.3LCD驱动原理  ......
  • 快速C++中的入门智能指针
    ✨前言✨......
  • 习题整理《C++17从入门到精通》第二章-变量和基本类型
                                                             //复习用,如有错误,请指正1.下面哪些是不合法的变量标识符?为什么?@ohd      *zara    a2bc    move_name    a_123myname50  _......
  • 习题整理《C++17从入门到精通》第五章-复合类型:数组、指针和引用
                                                            //复习用,如有错误,请指正1.下面程序的输出是什么?#include<iostream>usingnamespacestd;intmain(){intx=10;int&ref=x;......
  • AI绘画新手入门必看!第二弹
    大家好哇!我是你们的AIGC测评博主米兔!上期介绍了国产PSAI插件的下载和安装教程以及基础功能,这一期将带大家体验StartAI几个有趣的AI功能,激发艺术创造灵感!不知道怎么下载和安装的宝宝可以看上期文章哦!下面介绍艺术融合、线稿上色和图生图。艺术融合功能介绍:一键融合特色艺术......
  • Linux的入门笔记
    awk命令运用1.目标:-近期:使用awk进行过滤,取列-长远:使用awk进行过滤,取列,统计计算-第三个阶段:shell,python,awk判断,循环,数组中使用awk2.awk内置命令 NR:NumberofRecord 记录号(行号)NF:NumberofFields  3.awk格式awk 选项 '条件{动作}' 文件a......
  • docker-compose入门级实战教程
    ......
  • nuxt简单入门安装
    参考:https://www.jianshu.com/p/fd99718a63e9@目录概要具体流程小结概要听说直接使用vue写前端对百度的seo不够友好,于是便考虑使用nuxt生成静态化来处理具体流程首先你的本机环境要有npm,如下图然后可以使用npx安装nuxt,npx是npm5点几就支持的了,但是我这一开始还不行,还需要手......
  • docker入门教程
    1.Docker简介1.1Docker和虚拟化的区别虚拟化将物理硬件资源虚拟化为多个虚拟机。每个虚拟机拥有自己的操作系统和应用程序,彼此隔离。虚拟机启动速度较慢,资源消耗较大。Docker在一台服务器或虚拟机上使用同一操作系统部署多个应用程序每个容器共享操作系统的内核,但......
  • spring入门aop和ioc
    目录spring分层架构表现层服务层(业务层)持久层spring核心ioc(控制反转)1)接下来是代码示例:2)ioc容器的使用过程3)ioc中的bean管理4)实例化bean的三种方式aop(面向切面开发)定义优势AOP底层原理AOP相关的术语AOP入门aop注解开发aop纯注解开发Di(依赖注入)1)属性的set方法注入值的方式2)构造......