首页 > 其他分享 >【Sword系列】第七届全国残疾人职业技能大赛样题-网络安全-AES加密

【Sword系列】第七届全国残疾人职业技能大赛样题-网络安全-AES加密

时间:2023-07-16 21:32:07浏览次数:44  
标签:AES 加密 text 解密 密钥 Sword plain 样题

前言

AES即高级加密标准(Advanced Encryption Standard),是一种对称密钥加密算法。它采用128、192和256位密钥,并且对明文进行分块加密。AES算法使用替换、置换、XOR和线性运算等基本加密算法,在加密和解密时都使用相同的密钥。

AES算法主要分为四个步骤:密钥扩展、初始轮、重复轮和最终轮。密钥扩展将一次性密钥扩展成多个轮密钥,重复轮将轮密钥用于执行加密或解密操作,最终轮是一个特殊的加密轮,用于处理最后一个分组的加密或解密操作。

AES算法应用广泛,特别是在安全领域。例如,AES加密可以用于保护数据传输和存储过程中的机密信息,如支付信息、个人身份信息、密码等。同时,由于AES算法具有高强度、高效率、可靠性等优点,因此还适用于网络安全、金融、电子商务等领域。

一、AES加密

1.打开题目

在这里插入图片描述

2.解题

下载后发现是.xz结尾

xz -d 1.py.xz

在这里插入图片描述

#!/usr/bin/env python3
import base64
from Crypto.Cipher import AES  # pip3 install pycrypto

def main(data):
    c = AES.new(b'Hello, World...!')
    plain_text = bytes.fromhex(input('What is your plain text? '))
    if c.encrypt(plain_text) != b'Good Plain Text!':
        print('Bad plain text')
        exit()

    c2 = AES.new(plain_text[::-1], mode=AES.MODE_CBC, IV=b'1234567887654321')

    decrypted = c2.decrypt(data)

    with open('output.jpg', 'wb') as fout:
        fout.write(decrypted)

main(base64.b64decode('.......'))

1.第一轮密钥为b'Hello, World...!'

2.第一轮密文为b'Good Plain Text!'

3.解密即可得到plain_text

4.第二轮密钥为plain_text

5.直接解密输出图片即可

代码如下:

import base64
from Crypto.Cipher import AES
c = AES.new(b'Hello, World...!', AES.MODE_ECB)
plain_text = c.decrypt(b'Good Plain Text!')
c2 = AES.new(plain_text[::-1], mode=AES.MODE_CBC, IV=b'1234567887654321')
data = base64.b64decode(r'.......')
decrypted = c2.decrypt(data)
with open('output.jpg', 'wb') as fout:
    fout.write(decrypted)

在这里插入图片描述 得到flag:I can encrypt aes

标签:AES,加密,text,解密,密钥,Sword,plain,样题
From: https://blog.51cto.com/u_15952481/6740306

相关文章

  • python aes
    实现PythonAES加密解密背景AES(AdvancedEncryptionStandard)是一种对称密钥加密算法,广泛应用于数据的加密和解密过程中。在Python中,我们可以使用cryptography模块来实现AES加密解密功能。整体流程下面是实现PythonAES加密解密的整体流程:步骤描述1.导入......
  • c# PasswordBoxHelper
    1publicclassPasswordBoxHelper2{3publicstaticreadonlyDependencyPropertyPasswordProperty=DependencyProperty.RegisterAttached("Password",typeof(string),typeof(PasswordBoxHelper),4newPropertyMetadata(......
  • 【Sword系列】第七届全国残疾人职业技能大赛样题-网络安全-这音乐好难听
    前言音频隐写是指将隐藏的信息嵌入到音频信号中,使得这些信息对人耳听不出来,但可以通过特定的解码方式提取出来。以下是音频隐写的几种具体种类:LSB隐写法:最常见的音频隐写技术之一,将要隐藏的信息以二进制形式嵌入到音频信号中最低有效位(LSB)中。时间域隐写法:通常利用音频信号......
  • Strong Password(贪心思想)
    StrongPasswordtimelimitpertest2secondsmemorylimitpertest256megabytesinputstandardinputoutputstandardoutputMonocarpfinallygotthecouragetoregisteronForceCoders.Hecameupwithahandlebutisstillthinkingaboutthepassw......
  • hutool md5 aes 加密解密
    //AES加密解密AESaes=newAES(Mode.CBC,Padding.ZeroPadding,"xxx".getBytes(),"xxx".getBytes());//加密并进行Base转码Stringencrypt=aes.encryptBase64(content);//解密为字符串Stringdecrypt=aes.decryptStr(encrypt);System.out.println(decrypt);......
  • Educational Codeforces Round 151 (Rated for Div. 2) C. Strong Password
    题目翻译,给定t组数据,每组数据包含一个字符串s,两个长度为m的字符串l和r,要求判断是否存在一个长度为m的字符串res,满足l[i]<=res[i]<=r[i](i->0~m)且不是s的子序列贪心首先对于所有满足l<res<r的字符串,我们只需判断是否存在一个字符串不是子序列即可,那么我们让res成为子序列的可能......
  • java、vue基于hutool的aes指定秘钥加密(前后端aes加解密)
     后端代码//加密data对称AESKeybyte[]key=getBytes("._^BV67nW6ck8fwg",16);//秘钥长度最好是16位SymmetricCryptoaes=newSymmetricCrypto(SymmetricAlgorithm.AES,key);Stringjsondata=aes.encryptHex("中国test");System.out.println(jsondata);//......
  • CS202 Caesar’s Challenge
    CS202Assignment3--Caesar’sChallenge(groupassignment)Due:11:59pm06/26/2023(Monday)IntroductionAsarenowneddetective,SherlockHolmesreceivesalotofmail.Someofhismailincludedpuzzlesfromhisrivals,attemptingtobethefirsttoconfuseS......
  • CodeForces 1845C Strong Password
    洛谷传送门CF传送门我怎么这么多天没写题解了,快来水一篇。考虑对\(s\)串建子序列自动机后dp。设\(n=|s|\)。建子序列自动机,就是求出\(nxt_{i,j}\)为\([i,n]\)中第一个等于\(j\)的位置,不存在则\(nxt_{i,j}=n+1\)。然后我们设\(f_{i,j}\)为填到密码的......
  • AES加密和解密,key需要32位
    AES加密和解密,key需要32位packagecom.example.core.mydemo.sign;importorg.apache.commons.codec.binary.Base64;importorg.apache.commons.lang3.StringUtils;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importjavax.crypto.Cipher;importjavax.cr......