CTF-Crypto-各种密码原理及解密方法
CTF-Crypto-各种密码原理及解密方法
- 一.常见密码格式(太懒了,待补充)
- 二.古典密码
- 凯撒密码
- 仿射密码
- 埃特巴什码
- 培根密码
- 棋盘密码
- 希尔密码
- 维吉尼亚密码
- 摩尔斯密码
- 栅栏密码(普通型)
- 栅栏密码(W型)
- 猪圈密码
- 圣堂武士密码
- Ook!密码
- BrainFuck密码
- JS加密
- JSFuck加密
- 盲文
- 四方密码
- 标准银河字母
- 当铺密码
- 跳舞的小人密码
- 普莱费尔密码
- Keyboard密码
- 云影密码(01248密码)
- 曲路密码
- 三.现代密码(太懒了,待补充)
一.常见密码格式(太懒了,待补充)
名称 | 密文 | 明文 | 特点 |
---|---|---|---|
栅栏密码 | fg2ivyo}{2s3_o@aw__rcl@ | flag{w22_is_v3ry_cool} | 1.长度一般不会太长 2.一般不会出现原来没有的字符(可能会出现用@打乱的现象) |
base64 | ZmxhZ3toZWxsb193b3JsZCF9IAo== | flag{hello_world!} | 后面会有= |
base16 | 666C61677B6D795F6E616D655F482121487D | flag{my_name_H!!H} | 只由大写字母和数字组成 |
Unicode | \u0066\u006c\u0061\u0067\u007b\u0069\u005f\u0077\u0069\u006c\u006c\u005f\u006b\u0069\u006c\u006c\u005f\u0079\u006f\u0075\u0021\u007d | flag{i_will_kill_you!} | 每一字符都用一个5位字符编码表示,并用\分割 |
urlencode | %68%61%63%6b%65%72%44%4a | hackerDJ | |
词频分析 | Eg qnlyjtcnzydl z umaujejmjetg qeydsn eu z bsjdtx tw sgqtxegc al kdeqd mgeju tw yrzegjsoj zns nsyrzqsx kejd qeydsnjsoj | ||
Ew ltm fgtk jds kzl tw sgqtxegc m kerr csj jds wrzc kdeqd eu qrzuueqzr-qeydsn_eu_gtj_usqmnejl_du | 长度很长 |
二.古典密码
凯撒密码
凯撒密码一般适用于26个英文字母。根据偏移量来进行加密。如图所示,当偏移量=3。即是A-D,B-E。
1.原理
密钥:K
加密解密过程:
2.在线加密解密网站:
https://www.qqxiuzi.cn/bianma/kaisamima.php
http://www.metools.info/code/c70.html
http://www.atoolbox.net/Tool.php?Id=778
仿射密码
1.原理
密钥:(a,b),其中a与26互质。
加密解密过程:
2.在26上所有与26互质元素的乘法逆元
3.在线加密解密网站:
http://www.atoolbox.net/Tool.php?Id=911
4.解密脚本:
import primefac
def affine_decode(c,a,b,origin="abcdefghijklmnopqrstuvwxyz"):r=""n=len(origin)ai=primefac.modinv(a,n)%nfor i in c:if origin.find(i)!=1:r+=origin[(ai*(origin.index(i)-b))%n]else:r+=ireturn r
print affine_decode("ihhwvcswfrcp",5,8)def affine_guessab(m1,c1,m2,c2,origin="abcdefghijklmnopqrstuvwxyz"):x1=origin.index(m1)x2=origin.index(m2)y1=origin.index(c1)y2=origin.index(c2)n=len(origin)dxi=primefac.modinv(x1-x2,n)%na=dxi*(y1-y2) % nb=(y1-a*x1)%nreturn a,b
print affine_guessab("a","i","f","h")
埃特巴什码
1.加密解密原理:使用字母表倒数第n个字母代替第n个字母
例如:
培根密码
1.加密解密原理:使用两种字符,每一段长度为5.
2.在线加密解密网址:
https://tool.bugku.com/peigen/
棋盘密码
1.加密原理:
另一常用表:
希尔密码
1.加密解密原理:
使用每个字母在字母表中的顺序作为其对应数字。再将铭文转换为n维向量,和一个n阶方阵相乘后模26.最后将新的矩阵写成对应字母。
2.在线加密解密:
http://www.atoolbox.net/Tool.php?Id=914
维吉尼亚密码
1.加密原理:根据密钥来决定用哪一行密表来进行替换。
2.在线加密解密网址:
https://www.qqxiuzi.cn/bianma/weijiniyamima.php
摩尔斯密码
1.加密原理:
2.在线加密解密网址:
http://www.zhongguosou.com/zonghe/moErSiCodeConverter.aspx?d=123
栅栏密码(普通型)
1.将明文分为N组,然后把每一组第一个字连起来。
2.在线加密解密网址:
https://www.qqxiuzi.cn/bianma/zhalanmima.php
栅栏密码(W型)
1.加密解密原理:分组时呈W型排列。
2.在线加密解密网址:
http://www.atoolbox.net/Tool.php?Id=777.com
猪圈密码
1.加密原理:
2.在线加密解密网址:
http://www.metools.info/code/c90.html
圣堂武士密码
猪圈密码的一种变形
1.加密解密原理:
Ook!密码
1.加密原理:
2.在线加密解密网址:
https://www.splitbrain.org/services/ook
BrainFuck密码
1.加密解密原理:
2.在线加密解密网址:
https://www.splitbrain.org/services/ook
JS加密
1.加密解密方法:
2.在线加密解密网址:
https://utf-8.jp/public/aaencode.html
https://www.sojson.com/jsjiemi.html
JSFuck加密
1.加密解密原理:
2.在线加密解密网址:
http://www.jsfuck.com/
https://www.sojson.com/jsjiemi.html
盲文
1.加密解密原理:
2.在线加密解密网址:
https://www.qqxiuzi.cn/bianma/wenbenjiami.php?s=mangwen
四方密码
1.加密解密原理:
密钥:K1,K2
加密解密过程:
将密钥去掉重复字母,写进一个5*5的矩阵中,剩余字母按字母表中的顺序填充(将Q去除,或将I和J视作同一字),与密钥重复的字母就不要写进去了。
将两个矩阵放在右上和左下,右下和左上的矩阵按字母表的顺序组成。这样就组成了一个22的55的密钥存阵。
加密时两个字母一组。第一个字母加密后就是和一个字母同横的,和第二个字母同直的密钥存阵中的字母;第二个字母加密后就是和第一个字母同直,第二个字母同横的字母。
例如:
密钥为example和keyword
明文为he
加密矩阵为
故密文为FY。
2.在线加密解密网址:
http://ctf.ssleye.com/four.html
标准银河字母
1.加密解密原理:
当铺密码
将中文和数字进行转化的密码
1.加密解密原理:
当前汉字有多少笔画出头,就是转化成数字几
例如:口 0 田 0 由 1 中 2 人 3 工 4 大 5 王 6 夫 7 井 8 羊 9
跳舞的小人密码
1.加密解密原理:
普莱费尔密码
1.加密解密原理:
密钥:K
加密解密过程:
选取一个英文字作密钥。除去重复出现的字母。将密钥的字母逐个逐个加入5×5的矩阵内,剩下的空间将未加入的英文字母依a-z的顺序加入。(将Q去除,或将I和J视作同一字。)
将要加密的讯息分成两个一组。若组内的字母相同,将X(或Q)插入两字母之间,重新分组(例如 HELLO 将分成 HE LX LO)。若剩下一个字,也加入X字。
在每组中,找出两个字母在矩阵中的地方。
若两个字母不在同一直行或同一横列,在矩阵中找出另外两个字母,使这四个字母成为一个长方形的四个角。
若两个字母在同一横列,取这两个字母右方的字母(若字母在最右方则取最左方的字母)。
若两个字母在同一直行,取这两个字母下方的字母(若字母在最下方则取最上方的字母)。
2.在线加密解密网址:
http://www.atoolbox.net/Tool.php?Id=912
http://rumkin.com/tools/cipher/playfair.php
Keyboard密码
Keyboard密码在ctf中应该是分多种类型的。这里提两种。即9键表和26键。
1.加密解密原理:
9键表就是通过九键上多次字母来进行字母提取,26键包含通过明文多个字符对应一个密文。
例如:ooo在键盘上对应9,3个o即代表第九个格子第三个字母即y
云影密码(01248密码)
1.加密解密原理:
将一个数字各位数字加起来之和得到的数字对应的字母就是密文
例如:123=6,即f。
2.解密脚本:
#!/usr/bin/python
# -*- coding=utf8 -*-
"""
# @Author : pig
# @CreatedTime:2019-11-2423:54:02
# @Description :
"""def de_code(c):dic = [chr(i) for i in range(ord("A"), ord("Z") + 1)]flag = []c2 = [i for i in c.split("0")]for i in c2:c3 = 0for j in i:c3 += int(j)flag.append(dic[c3 - 1])return flagdef encode(plaintext):dic = [chr(i) for i in range(ord("A"), ord("Z") + 1)]m = [i for i in plaintext]tmp = [];flag = []for i in range(len(m)):for j in range(len(dic)):if m[i] == dic[j]:tmp.append(j + 1)for i in tmp:res = ""if i >= 8:res += int(i/8)*"8"if i%8 >=4:res += int(i%8/4)*"4"if i%4 >=2:res += int(i%4/2)*"2"if i%2 >= 1:res += int(i%2/1)*"1"flag.append(res + "0")print ("".join(flag)[:-1])c = input("输入要解密的数字串:")
print (de_code(c))
m_code = input("请输入要加密的数字串:")
encode(m_code)
曲路密码
1.加密解密原理:
按照事先约定的原则把明文填入表中,再按照一定的顺序进行遍历
例如:
明文为HelloWorldab
密文就是lrbaoleWdloH
三.现代密码(太懒了,待补充)
参考网址:https://www.cnblogs.com/hetianlab/p/13628249.html
https://blog.csdn.net/vhkjhwbs/article/details/99692399
CTF-Crypto-各种密码原理及解密方法相关推荐
- CTF-Crypto 密码原理及解密方法
CTF-Crypto 密码原理及解密方法 文章目录 CTF-Crypto 密码原理及解密方法 推荐综合加解密网址 一.常见密码格式 二.古典密码 凯撒密码 仿射密码 埃特巴什码 培根密码 棋盘密码 希 ...
- ZIP/RAR压缩包加密原理和解密方法
ZIP/RAR压缩包加密原理和解密方法 1.压缩包的概念 一般我们看到的压缩格式有.rar,.zip,等等有许多格式但主要压缩的作用就是让某一个文件占用空间小点.比如原来是50MB,可以压缩到30多M ...
- 简单的MD5密码加密和解密方法
MD5的算法是不可逆的,MD5被广泛用于密码验证和消息体完整性验证. 下面的例子用到了密码加密和登陆时的解密的基本方法.当然这样很容易被暴力破解,可以做其他改进,如先设计一个足够复杂的密码,然后将他的 ...
- 基于Python实现的CTF Crypto加密解密工具
纯小白,记录一下自己小学期内做的项目.基于Python实现一个能够对凯撒密码.维吉尼亚密码.栅栏密码.摩斯密码.Base64编码.Ascii编码.AES.DES.RSA.RC4的加密解密以及维吉尼亚密 ...
- 密码控件解密流程和原理
文章目录 密码控件解密流程和原理 1.1 RSA 1.2 国密 2.1随机数生成 3引申知识hex和base64 3.1hex 3.2 base64 4.国产密码算法 参考文档 密码控件解密流程和原理 ...
- excel表格xlsx解密方法,忘记excel表格xlsx密码怎么办?
最简单的excel表格xlsx文档解密方法,excel表格xlsx权限限制怎么解除?[超级好用]文档excel表格xlsx解密,用「密码帝」 就可以啦!手机电脑都可以用,一键轻松在线解密!不用下载安装 ...
- 浏览器记住密码--原理/不记住密码的方法
原文网址:浏览器记住密码--原理/不记住密码的方法_IT利刃出鞘的博客-CSDN博客 简介 本文介绍浏览器是如何自动跳出保存密码的提示的,并介绍如何让浏览器不自动跳出保存密码的提示的方法. 记住密码的 ...
- 密码学--CTF Crypto 总结
密码学简介 密码学(Cryptography)一般可分为古典密码学和现代密码学. 其中,古典密码学,作为一种实用性艺术存在,其编码和破译通常依赖于设计者和敌手的创造力与技巧,并没有对密码学原件进行清晰 ...
- CTF Crypto简单题学习思路总结(持续更新)
系列文章目录 本系列开篇文章,就没有链接了. 文章目录 系列文章目录 前言 一.编码/解码 1.1 BrainFuck密码&ook!密码 1.2 URL编码&HTML实体编码 1.3 ...
最新文章
- 华为鲲鹏高校行长沙启航,助力基础研究成果转化
- 构建具有用户身份认证的 React + Flux 应用程序
- WKWebView的使用与JS交互详细解读
- python 推导式_Python 入门之 推导式
- 使用asp.net中的跟踪功能
- ubutnu16.04安装ros2
- 【技术文档】jeecg3.7-maven搭建环境入门 - 老版本
- torch中Dataset的构造与解读
- 【全网最全的博客美化系列教程】08.自定义地址栏Logo
- Parallels Desktop 17 亮点整理,7 大改进与变化
- JS中异常处理的理解
- 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员……
- php session超时设置,php如何设置session超时过期时间
- html css 鼠标手势,CSS设置鼠标手势:cursor属性说明
- 商品秒杀系统设计思路
- 初学JAVA-3-重新定义和第一个JAVA手工程序
- ardupilot 中关键坐标系
- PCIe ECAM机制访问PCIE的配置空间
- 苹果自带地图包括路线规划
- 太让人失望了,这些公司建议避雷!