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-各种密码原理及解密方法相关推荐

  1. CTF-Crypto 密码原理及解密方法

    CTF-Crypto 密码原理及解密方法 文章目录 CTF-Crypto 密码原理及解密方法 推荐综合加解密网址 一.常见密码格式 二.古典密码 凯撒密码 仿射密码 埃特巴什码 培根密码 棋盘密码 希 ...

  2. ZIP/RAR压缩包加密原理和解密方法

    ZIP/RAR压缩包加密原理和解密方法 1.压缩包的概念 一般我们看到的压缩格式有.rar,.zip,等等有许多格式但主要压缩的作用就是让某一个文件占用空间小点.比如原来是50MB,可以压缩到30多M ...

  3. 简单的MD5密码加密和解密方法

    MD5的算法是不可逆的,MD5被广泛用于密码验证和消息体完整性验证. 下面的例子用到了密码加密和登陆时的解密的基本方法.当然这样很容易被暴力破解,可以做其他改进,如先设计一个足够复杂的密码,然后将他的 ...

  4. 基于Python实现的CTF Crypto加密解密工具

    纯小白,记录一下自己小学期内做的项目.基于Python实现一个能够对凯撒密码.维吉尼亚密码.栅栏密码.摩斯密码.Base64编码.Ascii编码.AES.DES.RSA.RC4的加密解密以及维吉尼亚密 ...

  5. 密码控件解密流程和原理

    文章目录 密码控件解密流程和原理 1.1 RSA 1.2 国密 2.1随机数生成 3引申知识hex和base64 3.1hex 3.2 base64 4.国产密码算法 参考文档 密码控件解密流程和原理 ...

  6. excel表格xlsx解密方法,忘记excel表格xlsx密码怎么办?

    最简单的excel表格xlsx文档解密方法,excel表格xlsx权限限制怎么解除?[超级好用]文档excel表格xlsx解密,用「密码帝」 就可以啦!手机电脑都可以用,一键轻松在线解密!不用下载安装 ...

  7. 浏览器记住密码--原理/不记住密码的方法

    原文网址:浏览器记住密码--原理/不记住密码的方法_IT利刃出鞘的博客-CSDN博客 简介 本文介绍浏览器是如何自动跳出保存密码的提示的,并介绍如何让浏览器不自动跳出保存密码的提示的方法. 记住密码的 ...

  8. 密码学--CTF Crypto 总结

    密码学简介 密码学(Cryptography)一般可分为古典密码学和现代密码学. 其中,古典密码学,作为一种实用性艺术存在,其编码和破译通常依赖于设计者和敌手的创造力与技巧,并没有对密码学原件进行清晰 ...

  9. CTF Crypto简单题学习思路总结(持续更新)

    系列文章目录 本系列开篇文章,就没有链接了. 文章目录 系列文章目录 前言 一.编码/解码 1.1 BrainFuck密码&ook!密码 1.2 URL编码&HTML实体编码 1.3 ...

最新文章

  1. 华为鲲鹏高校行长沙启航,助力基础研究成果转化
  2. 构建具有用户身份认证的 React + Flux 应用程序
  3. WKWebView的使用与JS交互详细解读
  4. python 推导式_Python 入门之 推导式
  5. 使用asp.net中的跟踪功能
  6. ubutnu16.04安装ros2
  7. 【技术文档】jeecg3.7-maven搭建环境入门 - 老版本
  8. torch中Dataset的构造与解读
  9. 【全网最全的博客美化系列教程】08.自定义地址栏Logo
  10. Parallels Desktop 17 亮点整理,7 大改进与变化
  11. JS中异常处理的理解
  12. 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员……
  13. php session超时设置,php如何设置session超时过期时间
  14. html css 鼠标手势,CSS设置鼠标手势:cursor属性说明
  15. 商品秒杀系统设计思路
  16. 初学JAVA-3-重新定义和第一个JAVA手工程序
  17. ardupilot 中关键坐标系
  18. PCIe ECAM机制访问PCIE的配置空间
  19. 苹果自带地图包括路线规划
  20. 太让人失望了,这些公司建议避雷!

热门文章

  1. excel制作跨职能流程图_轻松做Visio跨职能流程图(泳道图)
  2. GParted图形化工具对Linux磁盘分区扩容
  3. MySQL安全性机制
  4. Linux下如何安装Firefox
  5. X位的有/无符号整数
  6. 省赛题目(4月23日)
  7. 阿里云国际版ECS云服务器欠费会自动释放吗?
  8. Python实战项目23个实战小项目小程序简单
  9. 2020-07 前端技术汇总
  10. 【C语言】基础练习题