CTF——密码学题目基本解题思路

密码学常见的有两种:编码和加密

CTF 在线加密解密工具网站:

CTF在线工具-CTF工具|CTF编码|CTF密码学|CTF加解密|程序员工具|在线编解码 (hiencode.com)http://www.hiencode.com/千千秀字 (qqxiuzi.cn)https://www.qqxiuzi.cn/

目录

一、密码学概述

密码学的发展

密码编码学

对称加密和不对称加密

摘要算法

二、常见编码

ASCII

Base64

URL编码

Unicode编码

JS混淆

JSfuck

Jother

aaencode

三、常见加密算法

常见的几种算法

栅栏密码

曲路密码

列移位密码

凯撒加密

摩斯密码

ROT5/13/18/47

维吉尼亚密码

培根密码

键盘加密

1.QWE加密法:QWE=ABC按照键盘上的字母顺序对应ABC

2.电脑键盘棋盘加密

3.电脑键盘坐标加密

4.手机键盘密码

四、摘要算法

MD5 (哈希算法)

SHA (安全哈希算法)


 

一、密码学概述

密码学的发展

  • 第一个阶段是从古代到19世纪末——古典密码 (classical cryptography)
  • 第二个阶段从20世纪初到1949年——近代密码
  • 第三个阶段从C.E.Shannon (香农)于1949年发表的划时代论文 "The Communication Theory of Secret Systems”开始——现代密码
  • 第四个阶段从1976年W. Diffie和M. Hellman创造性地发表了论文"New Directions in Cryptography"开始——公钥密码

密码编码学

  • (1)密码编码学是密码学的一个分支研究与信息安全(例如:机密性、完整性、可鉴别性)有关的数学技术。
  • (2)密码编码学是包含数据变换的原理、工具和方法的一门学科,这种数据变换的目的是为了隐藏数据的信息内容,阻止对数据的篡改以及防止未经认可使用数据。
  • (3)密码编码学是论述使明文变得不可懂的密文,以及把已加密的消息变换成可懂形式的艺术和技巧。

对称加密和不对称加密

  • 对称密码算法(Symmetric cipher):加密密钥和解密密钥相同,或实质上等同,即从一个易于推出另一个。 又称传统密码算法(Conventional cipher)、秘密密钥算法或单密钥算法。
    • 加密算法:DES、3DES、 IDEA、AES
  • 非对称密码算法(Asymmetric cipher):加密密钥和解密密钥不同,从一个很难推出另一个。又叫公钥密码算法(Public-key cipher)。其中的加密密钥可以公开,称为公开密钥(public key),简称公钥;解密密钥必须保密,称为私人密钥(private key,简称私钥。
    • 加密算法:RSA、ECC、 EIGamal

摘要算法

        数据摘要算法是密码学算法中非常重要的一个分支,它通过对所有数据提取指纹信息以实现数据签名、数据完整性校验等功能,由于其不可逆性,有时候会被用做敏感信息的加密。数据摘要算法也被称为哈希(Hash) 算法 、散列算法,常见的摘要算法有MD5和SHA 。

        在互联网上进行大文件传输时,都要得用MD5算法产生一个与文件匹配的、存储MD5值的文本文件(后缀名为.md5或.md5sum) ,这样接收者在接收到文件后,就可以利用与SFV类似的方法来检查文件完整性,绝大多数大型软件公司或开源组织都是以这种方式来校验数据完整性,而且部分操作系统也使用此算法来对用户密码进行加密,另外,它也是目前计算机犯罪中数据取证的最常用算法。

        SHA中SHA1的应用较为广泛,主要应用于CA和数字证书中,另外在互联网中流行的BT软件中,也是使用 SHA1来进行文件校验的,由于SHA系列算法的数据摘要长度较长,因此其运算速度与MD5相比,也相对较慢。

二、常见编码

ASCII

        ASCII码使用指定的7位或8位二进制数组合来表示128或256种可能的字符。标准ASCII码也叫基础ASCII码,使 用7位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0到9、标点符号,以及在美式英语中使用的特殊控制字符。

ASCII在线转换地址:​锤子在线工具网 - 首页https://www.toolhelper.cn/

Base64

        Base64顾名思义就是用64个可显示字符表示所有的ASCII字符,64也就是6Bit,而ASC字符一共有256个,也就是8Bit。Base64编码要求把3个8为字节(3*8=24)转化为4个6位的字节(4*6=24),之后在6位的前面补上两个0,形成8位一个字节的形式。如果剩下的字符不足3个字节,则用0填充,输出字符使用‘=’,因此编码后输出的文本末尾可能会出现1或2个‘=’。

0aa22bba9dbd4a99bdc42619d2da7728.png

URL编码

        url编码就是一个字符ASCII码的十六进制。不过稍微有些改动,需要在前面加上‘%’。比如‘\’,它的ASCII码是92,92的十六进制是5c,所以‘\’的url编码是%5c

  • 特点:密文中有多个%

Unicode编码

        Unicode码扩展自ASCII字元集。在严格的ASCII中,每个字元用7位元表示,或者电脑上普遍使用的每字元有8位元宽;而Unicode使用全16位元字元集。这使得Unicode能够表示世界上所有的书写语言中可能用于电脑通讯 的字元、象形文字和其他符号。

  • 特点:密文中有多个\uxxx

JS混淆

        有些时候开发者为了保护劳动成果可以通过对 javascript 的变量名称和过程名称进行编码,从而起到混淆js代码的作用,通常使用 eval 函数进行混淆处理, 该函数可以计算字符串,并执行其中的JS代码。 如:对<script>alert( 'XSS' );</script> 进行16 进制转换, 然后使用eval函数进行读取

<script>eval("\x61\x6c\x65\x72\x74\x28\x27\x58\x53\x53\x27\x29\x3b"); </script>

  • 特点:通常在JS脚本里使用eval与function函数进行混淆。

89228415f5684338afa66886dcad6b1d.png

JSfuck

        JSFuck是用6个字符[]()!+来编写JavaScript程序。<script>alert(XSS);</script>经过加密后便成了只有以上6个字符的密文,可以使用浏览器的console控制台进行解密。

JSFuck在线加密解密https://jsfuck.com/

Jother

        Jother是一种运用于javascript语 言中利用少量字符构造精简的匿名函数方法对于字符串进行的编码方式。 其中8个少量字符包括:! + ()[]{}。只用这些字符就能完成对任意字符串的编码(可以在浏览器的console控 制台上直接解密)

aaencode

        aaencode使用的表情符号对js代码进编码,可以直接在命令行中继续解码,或者在以下的链接网站进行解码。

加解密地址: http://utf- 8.jp/public/aaencode.html

 

三、常见加密算法

常见的几种算法

  • 换位加密:栅栏密码、曲路密码、列位移密码
  • 替换加密:凯撒密码、摩斯密码、ROT5/13/18/47、维吉尼亚密码、培根密码、键盘密码
  • 其它密码:MD5、SHA

栅栏密码

        栅栏密码(Rail-fence Cipher)就是把要加密的明文分成N个一组,然后把每组的第1个字符组合,每组第2个字符组合...每组的第N(最后一个分组可能不足N个)个字符组合, 最后把他们全部连接起来就是密文。

  13722eb0cc894743aeba6bb2af4243c0.png

栅栏密码在线加密解密 - 千千秀字 (qqxiuzi.cn)https://www.qqxiuzi.cn/bianma/zhalanmima.php

曲路密码

        曲路密码是一种换位密码,需要事先双方约定密钥(也就是曲路路径)。

fabb4af9eca543c59b2afb661c873c89.png

列移位密码

        列移位密码(Columnar Transposition Cipher)是 种比较简单,易于实现的换位密码,通过一个简单的规则将明文打乱混合成密文。

        以明文Thequick brown fox jumps over the lazy dog,密钥how are u为例:

c809b2b0202e442ab81277b5807e36e6.png

列移位密码加密解密http://www.practicalcryptography.com/ciphers/classical-era/columnar-transposition/

凯撒加密

        凯撒密码(Caesar Cipher或称恺撒加密、恺撒变 换、变换加密、位移加密)是一种替换加密, 明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例,当偏移量是3的时 候,所有的字母A将被替换成D,B变成E,以此类推

69c045465eab4f35a1962712ac502279.png

摩斯密码

        摩尔斯电码(Morse Code)是由美国人萨缪尔:摩尔斯 在1836年发明的一种时通时断的且通过不同的排列顺序来表达不同英文字母、数字和标点符号的信号代码,摩尔斯电码主要由以下5种它的代码组成:

  • 点(.)
  • 划(-)
  • 每个字符间短的停顿(通常用空格表示停顿)
  • 每个词之间中等的停顿(通常用/划分)
  • 句子之间长的停顿

摩斯密码加密解密https://www.toolhelper.cn/SymmetricEncryption/MorseCode

ROT5/13/18/47

        ROT5:只对数字进行编码,用当前数字往前数的第5个数字替换当前数字,例如当前为0,编码后变成5,当前为1,编码后变成6,以此类推顺序循环。

        ROT13:只对字母进行编码,用当前字母往前数的第13个字母替换当前字母,例如当前为A,编码后变成N,当前为B,编码后变成O,以此类推顺序循环。

        ROT18:这是一个异类,本来没有,它是将ROT5和ROT13组合在一起,为了好称呼,将其命名为ROT18。

        ROT47:对数字、字母、常用符号进行编码,按照它们的ASCI值进行位置替换,用当前字符ASCII值往前数的第47位对应字符替换当前字符,例如当前为小写字母z,编码后变成大写字母K,当前为数字0,编码后变成符号。用于ROT47编码的字符其ASCII值范围是33 - 126,具体可参考ASCI编码。

ROT5/13/18/47加密解密https://www.qqxiuzi.cn/bianma/ROT5-13-18-47.php

维吉尼亚密码

        维吉尼亚密码(Vigenere Cipher)是在单- -恺撒密码的基础 上扩展出多表代换密码,根据密钥(当密钥长度小于明文长度时可 以循环使用)来决定用哪一-行的密表来进行替换, 以此来对抗字频统计。

a06ec8024f2f45d89cd55a0f55eca35d.png

dc331f7518324cc0ac6beed436e5b6c3.png

维吉尼亚密码在线加密解密https://www.qqxiuzi.cn/bianma/weijiniyamima.php

培根密码

        培根密码(Baconian Cipher)是一种替换密码,每个明文字母被一个由5字符组成的序列替换, 最初的加密方式就是由'A' 和‘B' 组成序列替换明文(所以你当然也可以用别的字母),比如字母'D' 替换成"aaabb" ,以下是全部的对应关系(另一种对应关系是每个字母都有唯一对应序列,I 和J与U/V各自都有不同对应序列)

174b073ae02741c7a1d4d4164d360b92.png

1aaecadddecd4ebdbf1610a774761813.png

培根密码在线加密解密https://www.qqxiuzi.cn/bianma/peigenmima.php

键盘加密

1.QWE加密法:QWE=ABC按照键盘上的字母顺序对应ABC

0b96a7c7b4ea4de2a521a1cb0d17d876.png

2.电脑键盘棋盘加密

9ee55cea87664a18b7922db8b701aa22.png

3.电脑键盘坐标加密

3a18582d019e412db5c1ca16af99083d.png

4.手机键盘密码

2794e22b1cda4bedb5557d85df19b377.png

 

四、摘要算法

MD5 (哈希算法)

        MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。

MD5值分为16位和32位,通常MD5的值中最大是F

如:603F52D844017E83CA267751FEE5B61B

md5在线解密加密https://www.cmd5.com/

SHA (安全哈希算法)

        SHA-1是一种数据加密算法,该算法的思想是接收一段明文,然后以一种不可逆的方式将它转换成一段(通常更小)密文,也可以简单的理解为取一串输入码 (称为预映射或信息),并把它们转化为长度较短、位数固定的输出序列即散列值(也称为信息摘要或信息认证代码)的过程。

SAH的值通常是40位,最大值是F

        对强行攻击的安全性:最显著和最重要的区别是SHA-1摘要比MD5摘要长32位。使用强行技术,产生任何一 个报文使其摘要等于给定报摘要的难度对MD5是2^128数量级的操作,而对SHA-1则是2^160数量级的操作。这样 SHA-1对强行攻击有更大的强度。

SHA在线加密解密https://tool.oschina.net/encrypt?type=2

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值