Fork me on GitHub

使用Python和Linux shell高效完成base64加解密

0x00 前言

一般打CTF的朋友都知道,开场往往有一道misc型签到题,base64加解密就是不少比赛中常用的考点,原则上尽量不要在这道签到题上浪费时间。今天就来快速分享一下base64加解密的适用方式。要得就是多快好省,高效解题。

推荐系统:Ubuntu、MacOS、Windows10的Linux子系统(待验证)



python_laptop2

0x01 base64加密

格式:base64 xxx

将输入的内容编码为base64字符串输出。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
格式:echo "str" | base64
将字符串str+换行 编码为base64字符串输出。

格式:echo -n "str" | base64
将字符串str编码为base64字符串输出。注意与上面的差别。

格式:base64 file
从指定的文件file中读取数据,编码为base64字符串输出


➜ [/Users] echo "test@test.com" | base64
dGVzdEB0ZXN0LmNvbQo=
➜ [/Users] echo -n "test@test.com" | base64
dGVzdEB0ZXN0LmNvbQ==

➜ [/Users/Desktop] vim test.txt
➜ [/Users/Desktop] base64 test.txt
dGVzdEB0ZXN0LmNvbQo=

0x02 base64解密

格式:base64 -d (Linux)
(注意:Mas OS要用 base64 -D)
从标准输入中读取已经进行base64编码的内容,解码输出。

格式:base64 -d [-i]

从标准输入中读取已经进行base64编码的内容,解码输出。加上-i参数,忽略非字母表字符,比如换行符。

1
2
3
4
5
6
7
可以系统查看base64命令

man base64
-i, --ignore-garbage
When decoding, ignore non-alphabet characters.

use --ignore-garbage to attempt to recover from non-alphabet characters (such as newlines) in the encoded stream.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
格式:echo "str" | base64 -d
将base64编码的字符串str+换行 解码输出。

格式:echo -n "str" | base64 -d
将base64编码的字符串str解码输出。 注意与上面的差别。

格式:base64 -d file
从指定的文件file中读取base64编码的内容,解码输出。

➜ [/Users/Desktop] echo "dGVzdEB0ZXN0LmNvbQo=" | base64 -D
test@test.com
➜ [/Users/Desktop] echo "dGVzdEB0ZXN0LmNvbQ==" | base64 -D
test@test.com%

这里看出差别了吧!

➜ [/Users/Desktop] base64 -D test.txt
test@test.com

0x03 Python的base64加解密trick

身为Python开发,怎么可能不安利一下python解密方法 ^ _ ^

加密方法

1
2
3
4
5
6
7
8
import base64

s2 = 'test@test.com'
In [7]: print(base64.b64encode(s2))
Out[7]: 'dGVzdEB0ZXN0LmNvbQ=='

In [8]: print(base64.b64decode('dGVzdEB0ZXN0LmNvbQ=='))
Out[8]: 'test@test.com'

解密方法

1
2
3
import base64
s = 'ZmxhZ3tpY3FlZHVfZ29nb2dvX2Jhc2U2NH0='
print(base64.b64decode(s))

How to encode/decode with base64 via Python or Linux Shell?

-------------  Fin    Thanks for reading!  -------------

本文标题:使用Python和Linux shell高效完成base64加解密

文章作者:TesterCC

发布时间:2019年05月14日 - 11:05

最后更新:2019年08月17日 - 22:08

原始链接:http://blog.fullstackpentest.com/how-to-encode-and-decode-with-base64.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。