密码学实验教程(科学实验课)

实验吧密码学WriteUp一)

大家好,又见面了,我是你们的朋友全栈君。

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               
       

这个系列的文章会将简单的题目放在一起介绍,稍难的题目会单独拿出来写,现在开始。
1.js(题目连接:http://www.shiyanbar.com/ctf/1779
打开网页查看源码,复制源码至Chrome的console,将代码中的eval改为console.log,回车后显示
这里写图片描述
一看就知道是unicode编码,找网站在线解码即可
这里写图片描述

2.NSCTF crypto200(连接:http://www.shiyanbar.com/ctf/1768
保存图片至本地,使用stegsolve打开
这里写图片描述
变换后得到
这里写图片描述
很像二维码是吧?不过这个二维码的黑白颜色完全相反,是扫不出来的,可以使用光影魔术手或者其他软件的反色功能,得到如下二维码,然后扫描即可得到flag
这里写图片描述

3.NSCTF crypto50(链接:http://www.shiyanbar.com/ctf/1758
题目做多了就有感觉了一看就知道是AES加密,故在线AES解密

这里写图片描述
直接提交,答案错误
仔细观察,感觉可能用了凯撒移位
前5个字母按照flag的规律应是NSCTF,由此得到移位数
手工破解即可flag{NSCTF_Rot_EnCryption}

4.黑客叔叔(雨袭团)内部交流题(第一季1.0.2)(题目链接:http://www.shiyanbar.com/ctf/1744
先将字符放在同一行,因为编码里很少会出现汉字,故尝试将“等等”变化为”==”,汉字变化为“/”
使用TripleDes解密
这里写图片描述
接着Rabbit解密
这里写图片描述
(我也不知道为什么是这两个算法,多尝试几次看答案像的就是了,常见加密算法有AES DES RC4 Rabbit TripleDes 等等)

5.simple algorithm(题目链接:http://www.shiyanbar.com/ctf/737
题目给了一个py脚本和一个密文文件,阅读源码可知:py脚本将明文转换为密文,现在需要将密文文件中的密文解密得到明文。 很明显加密流程为将明文转换为16进制编码,在转化为10进制数,将每两位数字构成的数进行FAN函数运算,再拼接起来得到密文。 
因此解密流程为:将0~99利用FAN函数求得加密值,建立加密值到原数的字典,在明文中查字典拼接得到10进制数,转化为16进制数,再求取字符串。 
按照要求用python脚本跑即可

– coding: utf8 –

原代码中的FAN()

def FAN(n, m):
    i = 0
    z = []
    s = 0
    while n > 0:
        if n % 2 != 0:
            z.append(2 – (n % 4))
        else:
            z.append(0)
        n = (n – z[i])/2
        i = i + 1
    z = z[::-1]
    l = len(z)
    for i in range(0, l):
        s += z[i] * m ** (l – 1 – i)
    return s

def foo():
    #读取密文
    s=open(“enc.txt”).read().strip()

#构造0~99对应的FAN()的值的字典dct={}for n in xrange(0,100):    #key为FAN()的结果,value为n(位数补足到2位)    dct[str((FAN(n,m=3)))]="%02d"%nlst=[]offset=0while offset<len(s):    #先从4个字符匹配直至1个字符    for i in xrange(4,0,-1):        tmp=s[offset:offset+i]        if tmp in dct:            lst.append(dct[tmp])            offset+=i            breakflag="".join(lst)#python中s[i:i+2]不一定取到2个字符,#如s="pcat",s[3:4]和s[3:5],甚至s[3:100]都是"t"#此题中最后得到"09",但也可能是"9",故做下面的判断if len(hex(long(flag))[2:-1])%2!=0:    flag=flag[:-2]+flag[-1]flag=hex(long(flag))[2:-1].decode('hex')print flagpass
  
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

if name == ‘main‘:
    foo()
    print ‘ok’

flag:SIS{a9ab115c488a311896dac4e8bc20a6d7}

6.密文 rot13(连接:http://www.shiyanbar.com/ctf/728
直接rot13解码就行
这里写图片描述

7.keyboard(链接:http://www.shiyanbar.com/ctf/61
提示键盘了,按照给出的字母顺序在键盘上画出字母的形状,就是答案

8.凯撒是罗马共和国杰出的军事统帅(连接:http://www.shiyanbar.com/ctf/40
按照提示,直接诶凯撒解密即可

9.摩擦摩擦(链接:http://www.shiyanbar.com/ctf/39
直接摩斯解密

10.最近听说刘翔离婚了(链接:http://www.shiyanbar.com/ctf/38
栅栏密码
其实写多了,套路就知道了
肯定是keyis{simplexue}

           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

这里写图片描述
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/129691.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • flash做动画教程(基础篇)

    flash做动画教程(基础篇)第一步、软件的下载与安装FlashMX2004第二步、新建一个flash文档也就是场景一你可以右击空白的文档,作如下操作:一、改变文档的背景颜色二、根据自己制作gif动态图片的大小,来选择文档的宽高二、新建元件或者是导入外部图片有的图片是不需要自己加工的素材就从外部导入导入外部图片的步骤:文件-导入-导入到库-选择图片的位置…

    2022年4月28日
    60
  • 分类模型 第1篇:分类模型概述[通俗易懂]

    分类模型 第1篇:分类模型概述[通俗易懂]机器学习主要用于解决分类、回归和聚类问题,分类属于监督学习算法,是指根据已有的数据和标签(分类的类别)进行学习,预测未知数据的标签。分类问题的目标是预测数据的类别标签(classlabel),可以把

    2022年8月2日
    6
  • 查找回文字符串

    查找回文字符串编写一个程序,寻找一篇英文文章中最长的回文字符串。回文字符串是具有回文特性的字符串:即该字符串从左向右读,与从右向左读都一样。输入文件不会超过500字符。这个文件可能一行或多行,但是每行都不超过80个字符(不包括最后的换行符)。在寻找回文时只考虑字母‘A’-‘Z’和‘a’-‘z’,忽略其他字符(例如:标点符号,空格等)。输出的第一行应该包括找到的最长的回文的长度。下一行或几行应该包括这个回文的原文(没有除去标点符号,空格等),把这个回文输出到一行或多行(如果回文中包括换行符)。如果有多

    2022年6月5日
    32
  • C++多线程函数CreateThread()详解

    C++多线程函数CreateThread()详解采用CreateThread()创建多线程程序原创2012年12月10日11:44:5936683…

    2022年7月11日
    19
  • Dumpbin

    Dumpbindumpbin.exe是微软二进制文件转储器。显示有关通用对象文件格式(COFF)的二进制文件的信息。可以使用DUMPBIN检查COFF对象文件、COFF对象、可执行文件和动态链接库(Dll)的标准库。用法:DUMPBIN[选项][文件]选项:/ALL;此选项显示除代码反汇编外的所有可用信息。使用/DI…

    2022年6月19日
    28
  • 如何添加smtp服务器_smtp服务器设置

    如何添加smtp服务器_smtp服务器设置在现在这个时代中,人们传输信息基本上都是用邮件传输,那么你知道电脑之间是怎么用邮件传输的么。就是通过smtp服务器,通过这个服务器,人们可以把自己写的东西通过邮件经过这个服务器传输到你想让邮件传输到的地方,接下来就让小编好好给大家介绍一下。Smtp传输器是什么?Smpt的意思是简单的邮件传输协议,它是一组用于源地址到目的地传送邮件的规则,并且由它决定邮件的中转方式。Smtp传输器使用由tcp提供的…

    2022年9月1日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号