[TOC]

0x00 快速入门

base64 命令

描述:使用 Base64 编码/解码文件或标准输入输出,数据以 RFC 3548 规定的 Base64 字母格式进行编码。 解码时输入数据(加密流)可能包含一些非有效 Base64 字符的新行字符。

#用法:
base64 [选项]... [文件]

#Options:
  -d, --decode          解码数据
  -i, --ignore-garbag   解码时忽略非字母字符
  -w, --wrap=字符数     在指定的字符数后自动换行(默认为76),0 为禁用自动换行
--ignore-garbage 选项来恢复加密流中任何非 base64 字符。

#如果没有指定文件,或者文件为"-",则从标准输入读取。

实际案例:

#示例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

WeiyiGeek.批量解密base64


xxd 命令

描述:用于使用二进制或十六进制格式显示文件内容,可以将指定文件或标准输入以十六进制转储,也可以把十六进制转储转换成原来的二进制形式,与winhex由很大的相似;

命令格式:

#如果没有指定输入文件, 则采用标准输入
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.简单案例与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

WeiyiGeek.xdd命令示例

#示例3.显示从倒数15字节到末尾的十六进制内容并采用大写显示
xxd -s -15 -u src.c


#示例4.将十六进行转换成文本数据,将文本数据转换成十六进制
echo '0000029: 3574 68' | xxd -r
echo "hello" |xxd -g1 #显示字符串 hello 的16进制数据:
echo -e "\x68\x65\x6c\x6c\x6f"


#示例5.在vim中也可以把文件转换为16进制来显示:
:%!xxd
#返回正常显示:
:%!xxd -r

WeiyiGeek.xdd示例2


md5sum 命令

描述:可以用于对文件进行校验和得到文件的MD5值;
参数语法:

md5sum [选项] [文件]  #可以接受多个文件或通配符
-c #核验数据完整性

实际案例:

#示例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


uuidgen

描述:uuid码全称是通用唯一识别码(universally uniqie Identifier,UUID),而uuidgen命令则是linux中生成和获取uuid的工具,HP和RedHat上可以使用uuidgen来生成,solaris上命令makeuuid

实际案例:

#示例1.Linux生成uuid随机数(可以作为随机密码)
$uuidgen
07d07031-eb0f-4691-8606-befb46645433

#示例2.获取网卡的uuid信息
$uuidgen eth1
07d07031-eb0f-4691-8606-befb46645433


sha1sum 命令

描述:进行文件的sha1值校验以及文件的完整性核验,除了这个sha1sum还有其他的核验方式只是校验长度不同sha256sum ,sha384sum, ha512sum;
SHA1与md5类似是另一种常用的校验和算法,它从给定的输入文件中生成一个长度为40个字符的十六进制

语法案例:

sha1sum [选项|文件]
-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

实际案例:

#基础使用案例
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]