DASCTF密码第一题,bbcrypto

貌似叫这个名字。

# -*- coding:utf-8 -*-
import A,SALT
from itertools import *def encrypt(m, a, si):c=""for i in range(len(m)):c+=hex(((ord(m[i])) * a + ord(next(si))) % 128)[2:].zfill(2)return c
if __name__ == "__main__":m = 'flag{********************************}'a = Asalt = SALTassert(len(salt)==3)assert(salt.isalpha())si = cycle(salt.lower())print("明文内容为:")print(m)print("加密后的密文为:")c=encrypt(m, a, si)print(c)#加密后的密文为:#177401504b0125272c122743171e2c250a602e3a7c206e014a012703273a3c0160173a73753d

仿射密码,求a,b

a与128互质可得a为1-127的奇数

b为三个字母的循环,可以理解为明文中n,n+3的字母采用相同的a,b加密。

已知明文攻击

已知明文为开头为flag,f和g采用相同的a,b加密。

f-->0x17,g-->0x50

仿射加密公式(ax+b)%n=y

a*(f-g)%n=0x17-0x50-->a=57,满足与128互质。

下面求b

m='177401504b0125272c122743171e2c250a602e3a7c206e014a012703273a3c0160173a73753d'
m=bytes.fromhex(m)
x=b'flag'
y=m[:3]
a=57
b=[]
for x1,y1 in zip(x,y):temp=(y1-a*x1)%128b.append(chr(temp))
print(b)
# ['a', 'h', 'h']

根据a,b及仿射的解密公式


m='177401504b0125272c122743171e2c250a602e3a7c206e014a012703273a3c0160173a73753d'
m=bytes.fromhex(m).decode()def decrypt(m, a, si):c=""for i in range(len(m)):c+=hex(pow(a,-1,128)*((ord(m[i]))  -ord(next(si))) % 128)[2:].zfill(2)return c
a=57
si=cycle('ahh')
y=decrypt(m,a,si)
print(bytes.fromhex(y))
# b'flag{ad7d973ffdd285b476a1a727b3a8fbc4}'

如果熟悉同余相关概念应该很简单。

用爆破找flag字符串的方式也很快。

import string,itertools
from itertools import *def encrypt(m, a, si):c=""for i in range(len(m)):c+=hex(((ord(m[i])) * a + ord(next(si))) % 128)[2:].zfill(2)return ccomb =string.ascii_lowercase
m='177401504b0125272c122743171e2c250a602e3a7c206e014a012703273a3c0160173a73753d'
m=bytes.fromhex(m).decode()for a in range(1,128,2):for i in itertools.product(comb, repeat=3):salt= '{}{}{}'.format(*i)si = cycle(salt.lower())res=encrypt('flag',a,si)if '17740150' == res:print('found',a,si,salt)breakelse:continue
# found 57 <itertools.cycle object at 0x0000020010DCDB00> ahh

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

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

相关文章

随手笔记——实现去畸变部分的代码

随手笔记——实现去畸变部分的代码 说明关键代码 说明 本程序实现去畸变部分的代码。尽管我们可以调用OpenCV的去畸变&#xff0c;但自己实现一遍有助于理解。 关键代码 // 本程序实现去畸变部分的代码。尽管我们可以调用OpenCV的去畸变&#xff0c;但自己实现一遍有助于理解…

WordPress作为可扩展的企业级解决方案

网络商业世界就像一片汪洋大海&#xff0c;大型企业是大海中最大的鱼。然而&#xff0c;只因为你比其他人都大&#xff0c;并不意味着你不能逆流而上。相反&#xff0c;企业业务面临的挑战更大&#xff0c;对网站的技术要求更高。 多年来&#xff0c;大型公司通常依赖最昂贵的…

Centos终端显示-bash-4.2#的解决方法

登录linux系统过后&#xff0c;突然发现显示的是-bash-4.2# 而不是root主机名 路径的显示方式&#xff0c;发生这种情况的原因是根目录下缺失几个配置文件&#xff0c;从默认配置中拷贝过来就可以解决了。 cp /etc/skel/.bashrc /root/ cp /etc/skel/.bash_profile /root/如…

Linux总线设备驱动模型

1. 简介 驱动模型中的总线可以是真是存在的物理总线&#xff08;USB总线&#xff0c;I2C总线&#xff0c;PCI总线&#xff09;&#xff0c;也可以是为了驱动模型架构设计出的虚拟总线&#xff08;Platform总线&#xff09;。为此linux设备驱动模型都将围绕"总线–设备–驱…

科普一下Elasticsearch中BM25算法的使用

首先还是先了解几个概念&#xff0c;Elasticsearch是一个开源的分布式搜索和分析引擎&#xff0c;它使用一系列算法来计算文档的相关性分数&#xff08;relevance score&#xff09;。这些算法用于确定查询与文档的匹配程度&#xff0c;以便按相关性对搜索结果进行排序。以下是…

生命在于折腾——MacOS(Inter)渗透测试环境搭建

一、前景提要 之前使用的是2022款M2芯片的MacBook Air 13寸&#xff0c;不得不说&#xff0c;是真的续航好&#xff0c;轻薄&#xff0c;刚开始我了解到M芯片的底层是ARM架构&#xff0c;我觉得可以接受&#xff0c;虚拟机用的不多&#xff0c;但在后续的使用过程中&#xff0…

换零钱II:零钱面值动态变化,class方法自动兑换最少零钱(贪心算法)

银行现存零钱面值种类动态变化但数量无限&#xff0c;类方法change()完成指定金额的最少零钱个数兑换。 (本笔记适合学透python基本数据结构&#xff0c;熟悉class的基构造&#xff0c;对类内全局变量有一定认的 coder 翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1…

RabbitMQ消息堆积问题及惰性队列

一&#xff0c;消息堆积 1&#xff0c;消费者堆积问题 当生产者生产消息的速度超过了消费者处理消息的速度&#xff0c;就会导致消息在队列中进行堆积&#xff0c;一定时间后会造成队列达到存储的上限&#xff0c;那么最开始进入队列的消息可能变成死信&#xff0c;会被丢弃&…

【软件测试】Git 详细实战-打标签,一篇通关...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 Git 打标签 一般会…

dede编辑器修改成纯文本编辑器的方法

我在做优秀啦网站大全的时候需要的正文内容都不需要设置什么文字样式&#xff0c;所以我需要把编辑器上的工具全部取消掉&#xff0c;包括会员投稿中的编辑器工具栏全部取消掉或者屏蔽隐藏掉&#xff0c;所以我需要把DEDE编辑器修改成纯文本编辑器的方法如下&#xff1a;如图&a…

防范 XSS 攻击的措施

防范 XSS 攻击的措施 XSS&#xff08;Cross-site scripting&#xff09;攻击是一种常见的网络安全漏洞&#xff0c;它可以通过注入恶意代码来攻击用户的计算机和浏览器&#xff0c;从而窃取用户的敏感信息或执行恶意操作。本篇文章将介绍防范 XSS 攻击的措施&#xff0c;并提供…

【深度学习论文阅读】四大分类网络之AlexNet

ImageNet Classification with Deep Convolution Nerual Networks 论文原文&#xff1a;ImageNet Classification with Deep Convolutional Neural Networks 1 引言 解决的问题&#xff1a; 提高效率&#xff08;GPU训练&#xff09;&#xff0c;防止过拟合&#xff08;drop…

基于Java的考研教室在线预约系统/基于springboot的考研教室在线预约系统

摘 要 网络的广泛应用给生活带来了十分的便利。所以把考研教室在线预约与现在网络相结合&#xff0c;利用java语言建设考研教室在线预约系统&#xff0c;实现考研教室在线预约的信息化。则对于进一步提高考研教室在线预约发展&#xff0c;丰富考研教室在线预约能起到不少的促进…

语义分割混淆矩阵、 mIoU、mPA计算

一、操作 #vx:桔子code / juzicode.com import cv2 img_gray cv2.imread("nezha.jpg",cv2.IMREAD_GRAYSCALE) for i in range(22):dst cv2.applyColorMap(img_gray,i) cv2.imshow(map,dst) cv2.waitKey(500)cv2.imwrite("map-"str(i)".jpg",…

解决yolo3目标检测训练过程中train.py运行问题

yolo3是一种广泛使用的目标检测算法&#xff0c;它在计算机视觉领域具有很高的准确率和性能。然而&#xff0c;在使用yolo3进行目标检测训练时&#xff0c;有时会出现train.py运行问题。本文将探讨如何解决这个问题。 首先&#xff0c;让我们了解一下训练过程中可能遇到的常见…

5G全网通工业三防平板Windows移动电脑

当今科技领域的快速发展为我们的生活带来了许多便利和高效性能。在这个数字化时代&#xff0c;移动设备已成为我们生活的重要组成部分。在这一领域&#xff0c;搭载全新第12代英特尔酷睿Mi5-1235U/i7-1255U处理器的工业三防平板Windows移动电脑无疑是一款引人注目的产品。 这款…

SpringBoot第22讲:SpringBoot如何实现接口限流之分布式

SpringBoot第22讲&#xff1a;SpringBoot如何实现接口限流之分布式 上文中介绍了单实例下如何在业务接口层做限流&#xff0c;本文是SpringBoot第22讲&#xff0c;主要介绍分布式场景下限流的方案&#xff0c;以及什么样的分布式场景下需要在业务层加限流而不是接入层; 并且结合…

无法找到docker.sock

os环境&#xff1a;麒麟v10(申威) 问题描述&#xff1a; systemctl start docker 然后无法使用docker [rootnode2 ~]# systemctl restart docker [rootnode2 ~]# docker ps Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon r…

vue3使用下载附件功能

效果&#xff1a; 点击即可以下载打开。 代码&#xff1a; <div v-show"item.attachment.length > 0"><h3>下载附件</h3><divv-for"(doc, docIndex) in item.attachment":key"docIndex"><astyle"color: #41…

关键路径alg

1. 无法使用 最佳路径搜索&#xff08;一&#xff09;&#xff1a;盲目搜索&#xff08;深度优先dfs&#xff0c;广度优先bfs&#xff0c;深度限制&#xff0c;迭代加深&#xff09; 分析&#xff1a;前提条件&#xff1a;二叉树&#xff0c;每个节点只能最多两个子节点 2. 关…