[TOC]
0x00 快速入门
0x01 加密编码
base64 命令
描述:使用 Base64 编码/解码文件或标准输入输出,数据以 RFC 3548 规定的 Base64 字母格式进行编码。 解码时输入数据(加密流)可能包含一些非有效 Base64 字符的新行字符。
[TOC]
描述:使用 Base64 编码/解码文件或标准输入输出,数据以 RFC 3548 规定的 Base64 字母格式进行编码。 解码时输入数据(加密流)可能包含一些非有效 Base64 字符的新行字符。
[TOC]
描述:使用 Base64 编码/解码文件或标准输入输出,数据以 RFC 3548 规定的 Base64 字母格式进行编码。 解码时输入数据(加密流)可能包含一些非有效 Base64 字符的新行字符。
1 | #用法: |
实际案例:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16#示例1.加密和解密
echo test|base64 #加密
dGVzdAo=
echo dGVzdAo= |base64 -d #解密
#示例2.批量解密base64:加密也一样
#!/bin/bash
for i in $(cat 1.txt)
do
echo $i | base64 -d 1>>de.txt 2>/dev/null
echo -e "" >>de.txt
done
#实例3.不换行显示转换后的数据
cat 20200524113201-index.html.log|base64 -w 0
# MTJhMTMKPiB2YXIgbWcj0iY3F6ayI7DQo2MDVjNjA2CjwgPC9zY3JpcHQ+DQotLS0KPiA8L3NjcmlwdD4KXCBObyBuZXdsaW5lI0IGVuZCBvZiBmaWxlCg==
描述:可以用于对文件进行校验和得到文件的MD5值;
参数语法:1
2md5sum [选项] [文件] #可以接受多个文件或通配符
-c #核验数据完整性
实际案例:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18#示例1.获取一个目录中的所有文件md5值
$md5sum *
ee38a408f20702ccc05fb39a04ee251c RPM-GPG-KEY-weiyigeek
1139929d8855ced585631c0e3fe8ad8d aaa.jpg
1139929d8855ced585631c0e3fe8ad8d compare_varnish.jpg
#示例2.接受多个文件或通配符
md5sum file1 file2 file3
[checksum1] file1
[checksum2] file2
[checksum3] file3
#示例3.-c选项可以用生成的md5文件核实数据的完整性,如:
$ md5sum a.txt > a.md5
$ md5sum –c a.md5
a.txt: OK
描述:uuid码全称是通用唯一识别码(universally uniqie Identifier,UUID),而uuidgen命令则是linux中生成和获取uuid的工具,HP和RedHat上可以使用uuidgen来生成,solaris上命令makeuuid
实际案例:1
2
3
4
5
6
7#示例1.Linux生成uuid随机数(可以作为随机密码)
$uuidgen
07d07031-eb0f-4691-8606-befb46645433
#示例2.获取网卡的uuid信息
$uuidgen eth1
07d07031-eb0f-4691-8606-befb46645433
描述:进行文件的sha1值校验以及文件的完整性核验,除了这个sha1sum还有其他的核验方式只是校验长度不同sha256sum ,sha384sum, ha512sum;
SHA1与md5类似是另一种常用的校验和算法,它从给定的输入文件中生成一个长度为40个字符的十六进制
语法案例:1
2
3
4
5
6
7
8sha1sum [选项|文件]
-c #校验完整性
-b #以二进制模式读取文件
--ignore-missing #don't fail or report status for missing files
--quiet #don't print OK for each successfully verified file
--status #don't output anything, status code shows success
--strict #exit non-zero for improperly formatted checksum lines
-w, --warn #warn about improperly formatted checksum lines
实际案例:1
2
3
4
5
6
7
8
9
10
11
12
13
14#基础使用案例
sha1sum *
8d469ba5f661a779ed6d73537f3c2dfcaba46d8b check.sh
cd3eccb06410c7b3d6cd01f7d1f0d0bbefe446d3 test.txt
#首先将命令产生的消息摘要保存在.sha1文件中再将test.txt和test.sha1放在同一个目录中,使用-c命令行选项验证文件的完整性。
ha1sum test.txt > test.sha1
cd3eccb06410c7b3d6cd01f7d1f0d0bbefe446d3 test.txt
sha1sum -c demo.sha1
demo.txt: OK
#默认情况下,sha1sum命令以文本模式读取文件,也可以强制该工具以二进制模式读取
sha1sum -b [filename]
描述:在查阅非文本文件时候采用od指令会读取所给予的文件的内容,并将其内容以八进制字码呈现输出文件内容,。
基础语法:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27od [-abcdfhilovx][-A <字码基数>][-j <字符数目>][-N <字符数目>][-s <字符串字符数>][-t <输出格式>][-w <每列字符数>][--help][--version][文件...]
#参数
-t [类型] : 后面接各种类型"类型(TYPE)"的输出例如:
a : 利用默认的字符来输出
c :利用ASCII字符来输出
d [size] : 利用十进制(decimal)来输出数据,每个整数占用size bytes;
f [size] : 利用浮点数(float)来输出数据,每个数占用size bytes;
o [size] : 利用八进制(octal)来输出数据,每个数占用size bytes;
x [size] : 利用十六进制(Hexadecimal)来输出数据,每个数占用size bytes;
-a 此参数的效果和同时指定"-ta"参数相同使用默认字符来输出。
-A <字码基数| [doxn]> 选择要以何种基数计算字码。
-b 此参数的效果和同时指定"-toC"参数相同。
-c 此参数的效果和同时指定"-tC"参数相同。
-d 此参数的效果和同时指定"-tu2"参数相同。
-f 此参数的效果和同时指定"-tfF"参数相同。
-o 此参数的效果和同时指定"-to2"参数相同。
-x 此参数的效果和同时指定"-h"参数相同。
-h 此参数的效果和同时指定"-tx2"参数相同。
-i 此参数的效果和同时指定"-td2"参数相同。
-j<字符数目>或--skip-bytes=<字符数目> 略过设置的字符数目。
-l 此参数的效果和同时指定"-td4"参数相同。
-N<字符数目>或--read-bytes=<字符数目> 到设置的字符数目为止。
-s<字符串字符数>或--strings=<字符串字符数> 只显示符合指定的字符数目的字符串。
-t<输出格式>或--format=<输出格式> 设置输出格式。
-v或--output-duplicates 输出时不省略重复的数据。
-w<每列字符数>或--width=<每列字符数> 设置每列的最大字符数。
基础示例:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58# 示例1.创建 tmp 文件简单演示使用将字符转换成八进制
> echo -e "abc d\n12 3" > tmp
> cat $_
# abc d
# 12 3
> od -b tmp
> 0000000 141 142 143 040 144 012 061 062 040 040 063 012
> 0000014
# 示例2使用单字节八进制解释进行输出,注意左侧的默认地址格式为八字节:
> od -c tmp
# 0000000 a b c d \n 1 2 3 \n
# 0000014
❯ od -t c /usr/bin/passwd | more
# 0000000 177 E L F 002 001 001 \0 \0 \0 \0 \0 \0 \0 \0 \0
# 0000020 003 \0 > \0 001 \0 \0 \0 @ O \0 \0 \0 \0 \0 \0
# 示例3.使用ASCII码进行输出,注意其中包括转义字符
$ od -A d -c tmp
0000000 a b c d \n 1 2 3 \n
0000012
$ od -A x -c tmp
000000 a b c d \n 1 2 3 \n
00000c
$ od -A n -c tmp
a b c d \n 1 2 3 \n
# 示例4.例如$IFS系统分隔符变量,直接输出无任何效果,我们可以通过od -b 以8进制形式转储
echo "$IFS" | od -b
# Octal:"040"是空格(32),"011"是Tab(9),"012"是换行符"\n"(10)
0000000 040 011 012 012
# 示例5.使用进制与ascii进行对比
# Octal VS Ascii
> od -t oCc /etc/issue # 以八进制的列出值与ASCII对应表
0000000 125 142 165 156 164 165 040 062 060 056 060 064 040 114 124 123
U b u n t u 2 0 . 0 4 L T S
0000020 040 134 156 040 134 154 012 127 151 156 144 157 167 163 040 127
\ n \ l \n W i n d o w s W
0000040 123 114 012 012
S L \n \n
> od -t dCc /etc/issue # 以十进制的列出值与ASCII对应表
0000000 85 98 117 110 116 117 32 50 48 46 48 52 32 76 84 83
U b u n t u 2 0 . 0 4 L T S
0000020 32 92 110 32 92 108 10 87 105 110 100 111 119 115 32 87
\ n \ l \n W i n d o w s W
0000040 83 76 10 10
S L \n \n
> od -t xCc /etc/issue # 以十六进制的列出值与ASCII对应表
0000000 55 62 75 6e 74 75 20 32 30 2e 30 34 20 4c 54 53
U b u n t u 2 0 . 0 4 L T S
0000020 20 5c 6e 20 5c 6c 0a 57 69 6e 64 6f 77 73 20 57
\ n \ l \n W i n d o w s W
0000040 53 4c 0a 0a
S L \n \n
描述:用于使用二进制或十六进制格式显示文件内容,可以将指定文件或标准输入以十六进制转储,也可以把十六进制转储转换成原来的二进制形式,与winhex由很大的相似;
命令格式:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15#如果没有指定输入文件, 则采用标准输入
xxd -h[elp]
xxd [options] [infile | [outfile]]
xxd -r[evert] [options] [infile [outfile]]
#参数
-b: 以2进制格式进行输出
-c: 每行输出多少个字节
-g: 几个字节组成一组
-i:将文件内容输出成 c的一个数组格式
-l : 输出几个字节后结束,显示几个字节的数据
-p:以一个整块输出所有的hex, 不使用空格进行分割
-s [+][-]seek : 从第几个字符开始
-u : 输出采用大写
-r: 反转操作,将16进制专程2进制
实际案例:1
2
3
4
5
6
7
8
9#示例1.简单案例与winhex相似显示偏移位置和Hex 与 字符文本
xxd src.c
xxd -g4 src.c #每四个字节一组
xxd -p src.c #输出所有的hex不使用空格进行分割,也不显示偏移
xxd -i src.c #输入C语言数组格式每一个下标存放一个十六进制
xxd -l 18 src.c
#示例2.以2进制格式显示每行输出8字节(8*8 = 64个二进制)
xxd -b -c8 src.c
1 | #示例3.显示从倒数15字节到末尾的十六进制内容并采用大写显示 |
你好看友,欢迎关注博主微信公众号哟! ❤
这将是我持续更新文章的动力源泉,谢谢支持!(๑′ᴗ‵๑)
温馨提示: 未解锁的用户不能粘贴复制文章内容哟!
方式1.请访问本博主的B站【WeiyiGeek】首页关注UP主,
将自动随机获取解锁验证码。
Method 2.Please visit 【My Twitter】. There is an article verification code in the homepage.
方式3.扫一扫下方二维码,关注本站官方公众号
回复:验证码
将获取解锁(有效期7天)本站所有技术文章哟!
@WeiyiGeek - 为了能到远方,脚下的每一步都不能少
欢迎各位志同道合的朋友一起学习交流,如文章有误请在下方留下您宝贵的经验知识,个人邮箱地址【master#weiyigeek.top】
或者个人公众号【WeiyiGeek】
联系我。
更多文章来源于【WeiyiGeek Blog - 为了能到远方,脚下的每一步都不能少】, 个人首页地址( https://weiyigeek.top )
专栏书写不易,如果您觉得这个专栏还不错的,请给这篇专栏 【点个赞、投个币、收个藏、关个注、转个发、赞个助】,这将对我的肯定,我将持续整理发布更多优质原创文章!。
最后更新时间:
文章原始路径:_posts/系统运维/Linux/常用命令/二进制程序类命令/编码加密核验类命令.md
转载注明出处,原文地址:https://blog.weiyigeek.top/2019/6-6-143.html
本站文章内容遵循 知识共享 署名 - 非商业性 - 相同方式共享 4.0 国际协议