密文格式:
3180E0975493D24031FCEB93F677FFE0015EAADC53B7DE6CF33911307E29C540
加密解密:E:\CTF\CTFTOOLS\
1
、密码、编解码相关\各种密码工具\DES
84
104
101
32
113
117
105
99
107
32
98
114
111
119
110
32
102
111
120
32
106
117
109
112
115
32
111
118
101
114
32
116
104
101
32
108
97
122
121
32
100
111
103
明文:flag{dsdasdasdsad11321321}
base64密文:ZmxhZ3tkc2Rhc2Rhc2RzYWQxMTMyMTMyMX0
=
base32密文:MZWGCZ33MRZWIYLTMRQXGZDTMFSDCMJTGIYTGMRRPU
=
=
=
=
=
=
源文本: The quick brown fox jumps over the lazy dog
密文:
%
54
%
68
%
65
%
20
%
71
%
75
%
69
%
63
%
6b
%
20
%
62
%
72
%
6f
%
77
%
6e
%
20
%
66
%
6f
%
78
%
20
%
6a
%
75
%
6d
%
70
%
73
%
20
%
6f
%
76
%
65
%
72
%
20
%
74
%
68
%
65
%
20
%
6c
%
61
%
7a
%
79
%
20
%
64
%
6f
%
67
Unicode
编码有以下四种编码方式:
源文本: The
&
&
\U [
Hex
]: \U0054\U0068\U0065
\U
+
[
Hex
]: \U
+
0054
\U
+
0068
\U
+
0065
结果 实体名称 实体编号
" " &
' ' &
& & &
< < &
> > &
摩尔斯电码主要由以下
5
种它的代码组成:
点(.)
划(
-
)
每个字符间短的停顿(通常用空格表示停顿)
每个词之间中等的停顿(通常用
/
划分)
以及句子之间长的停顿
摩尔斯电码字母和数字对应表:
A .
-
N
-
. . .
-
.
-
.
-
+
.
-
.
-
.
1
.
-
-
-
-
B
-
... O
-
-
-
,
-
-
..
-
-
_ ..
-
-
.
-
2
..
-
-
-
C
-
.
-
. P .
-
-
. :
-
-
-
... $ ...
-
..
-
3
...
-
-
D
-
.. Q
-
-
.
-
" .
-
..
-
. & .
-
...
4
....
-
E . R .
-
. ' .
-
-
-
-
.
/
-
..
-
.
5
.....
F ..
-
. S ... !
-
.
-
.
-
-
6
-
....
G
-
-
. T
-
? ..
-
-
..
7
-
-
...
H .... U ..
-
@ .
-
-
.
-
.
8
-
-
-
..
I .. V ...
-
-
-
....
-
9
-
-
-
-
.
J .
-
-
-
W .
-
-
;
-
.
-
.
-
.
0
-
-
-
-
-
K
-
.
-
X
-
..
-
(
-
.
-
-
.
L .
-
.. Y
-
.
-
-
)
-
.
-
-
.
-
M
-
-
Z
-
-
..
=
-
...
-
源文本: THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
编码后:
-
.... .
/
-
-
.
-
..
-
..
-
.
-
.
-
.
-
/
-
... .
-
.
-
-
-
.
-
-
-
.
/
..
-
.
-
-
-
-
..
-
/
.
-
-
-
..
-
-
-
.
-
-
. ...
/
-
-
-
...
-
. .
-
.
/
-
.... .
/
.
-
.. .
-
-
-
..
-
.
-
-
/
-
..
-
-
-
-
-
.
明文: The quick brown fox jumps over the lazy dog
去空格: Thequickbrownfoxjumpsoverthelazydog
分组: Th eq ui ck br ow nf ox ju mp so ve rt he la zy do g
第一组: Teucbonojmsvrhlzdg
第二组: hqikrwfxupoeteayo
密文: Teucbonojmsvrhlzdghqikrwfxupoeteayo
明文: The quick brown fox jumps over the lazy dog
密文: gesfc inpho dtmwu qoury zejre hbxva lookT
列移位密码(Columnar Transposition Cipher)是一种比较简单,易于实现的换位密码,通过一个简单的规则将明文打乱混合成密文。下面我们以明文 The quick brown fox jumps over the lazy dog,密钥 how are u为例:
填入
5
行
7
列表(事先约定填充的行列数,如果明文不能填充完表格可以约定使用某个字母进行填充)
密钥: how are u
按how are u在字母表中的出现的先后顺序进行编号,我们就有a为
1
,e为
2
,h为
3
,o为
4
,r为
5
,u为
6
,w为
7
,所以先写出a列,其次e列,以此类推写出的结果便是密文:
密文: qoury inpho Tkool hbxva uwmtd cfseg erjez
这里提供一个行列数相等的填充规则列移位密码加解密 链接
另外由列移位密码变化来的密码也有其他的,比如 Amsco密码 (Amsco Cipher)和 Cadenus密码 (Cadenus Cipher)。
明文: the quick brown fox jumps over the lazy dog
密文: gsv jfrxp yildm ulc qfnkh levi gsv ozab wlt
工具:E:\CTF\CTFTOOLS\
1
、密码、编解码相关\栅栏、凯撒、维吉尼亚、摩斯、MD5、置换、替代\
明文: The quick brown fox jumps over the lazy dog
偏移量:
1
密文: Uif rvjdl cspxo gpy kvnqt pwfs uif mbaz eph
ROT5
/
13
/
18
/
47
是一种简单的码元位置顺序替换暗码。此类编码具有可逆性,可以自我解密,主要用于应对快速浏览,或者是机器的读取。
明文: the quick brown fox jumps over the lazy dog
密文: gur dhvpx oebja sbk whzcf bire gur ynml qbt
简单换位密码(Simple Substitution Cipher)加密方式是以每个明文字母被与之唯一对应且不同的字母替换的方式实现的,它不同于恺撒密码,因为密码字母表的字母不是简单的移位,而是完全是混乱的
明文: the quick brown fox jumps over the lazy dog
密文: cei jvaql hkdtf udz yvoxr dsik cei npbw gdm
是一种以格子为基础的简单替代式密码。
具体的字典表在桌面
波利比奥斯方阵密码(Polybius Square Cipher或称波利比奥斯棋盘)是棋盘密码的一种,是利用波利比奥斯方阵进行加密的密码方式,简单的来说就是把字母排列好,用坐标(行列)的形式表现出来。字母是密文,明文便是字母的坐标。
加密实例:
明文: THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
密文:
442315
4145241325
1242345233
213453
2445323543
442315
31115554
143422
密文:
22
,
09
,
00
,
12
,
03
,
01
,
10
,
03
,
04
,
08
,
01
,
17
(wjamdbkdeibr)
使用的矩阵是
1
2
3
4
5
6
7
8
10
请对密文解密.
一个希尔密码 老老实实写个Python解密
__Url__
=
'784d9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4m8#2M7Y4m8D9k6i4u0G2j5#2)9J5k6h3y4G2L8g2)9J5y4H3`.`.
__author__
=
'Tracy_梓朋'
from
numpy
import
*
Dic
=
{
chr
(i
+
97
):i
for
i
in
range
(
26
)}
def
decode(pwd, org):
temp
=
[]
result
=
[]
while
True
:
if
len
(pwd)
%
3
!
=
0
:
pwd.append(pwd[
-
1
])
else
:
break
for
i
in
pwd:
temp.append(Dic.get(i))
temp
=
array(temp)
temp
=
temp.reshape(
len
(pwd)
/
3
,
3
)
xx
=
matrix(temp)
*
org
for
j
in
range
(
len
(pwd)
/
3
):
for
i
in
range
(
3
):
if
(
int
(xx[j, i]) >
=
26
):
result.append(
chr
(xx[j, i]
%
26
+
97
))
else
:
result.append(
chr
(xx[j, i]
+
97
))
return
result
def
get_vmatrix(org):
org_adjoin
=
org.I
*
linalg.det(org)
print
org_adjoin
org_det
=
int
(
str
(
abs
(linalg.det(org))).split(
'.'
)[
0
])
print
org_det
for
i
in
range
(
1
,
26
):
if
i
*
org_det
%
26
=
=
1
:
break
org_mod
=
-
org_adjoin
*
i
%
26
org_mod
=
matrix(org_mod)
temp
=
[]
for
i
in
range
(org_mod.shape[
0
]):
for
j
in
range
(org_mod.shape[
1
]):
temp.append(
int
(
str
(org_mod[i, j]).split(
'.'
)[
0
]))
org_final
=
matrix(temp).reshape(org_mod.shape[
0
], org_mod.shape[
1
])
return
org_final
if
__name__
=
=
'__main__'
:
pwd
=
"wjamdbkdeibr"
pwd
=
list
(pwd)
org
=
matrix(array([[
1
,
2
,
3
],[
4
,
5
,
6
],[
7
,
8
,
10
]]))
org_vm
=
get_vmatrix(org)
print
org_vm
print
"Your flag is :"
+
"".join(decode(pwd, org_vm))
1
2
3
4
5
1
A B C
/
K D E
2
F G H I J
3
L M N O P
4
Q R S T U
5
V W X Y Z
源文本: The
编码后:
%
u0054
%
u0068
%
u0065
首先切换python版本到
2.7
,
输入命令:python shellcode_encdec.py
输入命令:decode 进行解码
源文本: The quick brown fox jumps over the lazy dog
编码:
\x54\x68\x65\x7f\x71\x75\x69\x63\x6b\x7f\x62\x72\x6f\x77\x6e\x7f\x66\x6f\x78\x7f\x6a\x75\x6d\x70\x73\x7f\x6f\x76\x65\x72\x7f\x74\x68\x65\x7f\x6c\x61\x7a\x79\x7f\x64\x6f\x67
切换回
3
activate base
切换到
2.7
activate python27
查看环境
conda
-
info
-
e
多用途互联网邮件扩展(MIME) 一种实现方式
源文本: 敏捷的棕色狐狸跳过了懒惰的狗
编码后:
=
E6
=
95
=
8F
=
E6
=
8D
=
B7
=
E7
=
9A
=
84
=
E6
=
A3
=
95
=
E8
=
89
=
B2
=
E7
=
8B
=
90
=
E7
=
8B
=
B8
=
E8
=
B7
=
B3
=
E8
=
BF
=
87
=
E4
=
BA
=
86
=
E6
=
87
=
92
=
E6
=
83
=
B0
=
E7
=
9A
=
84
=
E7
=
8B
=
97
源文本: The quick brown fox jumps over the lazy dog
编码后: hJ4VZ653pOKBf647mPrRi64NjS0
-
eRKpkQm
-
jRaJm65FcNG
-
gMLdt64FjNkc
+
源文本: The quick brown fox jumps over the lazy dog
编码后: M5&AE(
'%U:6-K(&)R;W=N(&9O>"!J=6UP<R!O=F5R('
1H92
!L87IY(&
1O9PH
*