linux 加密安全之AWK
密钥
密钥一般是一串字符串或数字,在加密或者解密时传递给加密或者解密算法,以使算法能够正确对明文加密或密文解密。
加密算法
已知的加密算法有对称和非对称加密,也就是说你想进行加解密操作的时候需要具备密钥和加解密算法
对称加密
对称加密的算法是加密解密使用的是相同的密钥,因此对称加密算法要保证安全的话,密钥要做好保密,只能让使用的人知道,不能公开
非对称加密
在非对称加密算法中有公钥和私钥两种密钥,其中,公钥是公开的,不需要保密,私钥由个人持有,必须妥善保管和注意保密。加密和解密使用两种不同的密钥,这是一种常见的
应用很广的非对称加密算法
非对称加密方法
1 公钥私钥使用原则
每一个公钥对应一个私钥
密钥对中,大家都知道的是公钥,只有自己知道的是私钥。如果用其中一个密钥加密数据,则只有使用对应的密钥才可以解密
如果用其中一个密钥可以进行数据解密,则该数据必然是对应的那个密钥进行的加密
2 例:加密
A想给B发送一段文字。但是不想让别人看到,因此想用非对称密钥加密这段文字,当然B需要有一对公钥和私钥:
B将它的公钥发送给A
A用B的公钥加密这段文字,然后传送给B
B用自己的私钥解密A发过来的消息
通过这几步,B就能成功的接受到A发送的信息,并达到了保密的目的
3 例:解密
如果B想给A发信息那就简单多了
B用自己的私钥加密这段信息发送给A
A用B之前发过的公钥解密这段信息
公钥认证
在公钥加密解密的描述通讯过程看似简单,但想想这个过程A怎么知道B在回信过程中,有没有人被人修改过,这就涉及到数字签名的概念
数字签名原理
要达到这个目的,一般是对信息做一个HASH计算得到一个HASH值,注意,这个过程是不可逆的。也就是说无法通过HASH值推出原来的内容,在把这个信息发送出去的时 候, 把这个HASH值加密后作为一个签名和信息一起发出去。接收方在收到信息后,会重新计算HASH值,并和信息所带的HASH值进行对比,如果一致,说明信息没有被篡改 过,因为这里的HASH计算可以保证不同的内容一定会得到不同的HASH值,所以只要内容一被修改,根据信息内容计算的HASH值就会变化,当然,不坏好意的人也可以修改信 息内容的同时也修改HASH值,从而让他们可以相匹配,为了防止这种情况,HASH值一般都会加密后再和信息一起发过去
数字签名使用方式
例;
B给A回信时,采用了数字签名方式
1B先用HASH对信件生成一个HASH值
2B使用自己的私钥对HASH值进行加密,这样就生成了数字签名
3B将这个签名附在要回复的信息后面,一起发送给A
4A收到B的信息后,取下数字签名,并通过B的公钥解密,得到信件的摘要
5A在对B发送的信息本身使用B指定的HASH函数,将得到的结果同上一步解密得到的摘要进行对比,如果一致,说明没有被篡改过
数字证书
问题就这样结束了吗?远没有,试想,虽然A确定了B回给他的信息是未修改过的,但怎么确定回信息的就是B?如果有不怀好意的C把A保存的B的公钥偷偷换成自己的,并冒用 B的名义给A发信息呢?
要解决这个问题,A只要能确定自己持有的公钥到底是不是B的就可以了,这就需要用到数字证书
数字证书是用来验证公钥所属的用户身份。在日常生活中,如果我们要验证一个人的身份,通常的做法是查看他的身份证。我们信任身份证颁发机构即政府机构的公信力,因此 只要验证一个人的身份证不是伪造的,我们就相信这个人的身份和身份证上所描述的是一致的。
数字证书就是一个人或者组织在网络世界中的身份证,其发证机关是证书管理机构(CA),CA用自己的私钥对用户身份信息(主要是用户名和用户的公钥)进行签名,改签名 和用户身份一起就形成了证书
数字证书的构成
证书发布机构
证书的有效期
公钥
证书所有者
签名所使用的的算法
指纹以及指纹算法
数字证书生成过程
客户端通过SSH远程登录服务器
1 客户端与服务器的连接,使用用户名和密码的形式登录
2 服务器与服务器间的免密登录
免密登录配置
多台服务器间免密登录
1生成公钥和私钥
- [root@centos7 .ssh]#ssh-keygen
2 将公钥追加到
- [root@centos7 .ssh]#cat id_rsa.pub > authorized_keys
3 将自己的私钥和authorized_keys文件拷贝到各节点即可
- [root@centos7 .ssh]#scp id_rsa authorized_keys root@192.168.1.110:/root/.ssh/
AWK
使用方法
awk '{pattern + action}'
{filenames}
我们先从最简单的了解awk
上图中,我们只使用了AWK执行了一个打印动作,将testd的内容打印了一遍
awk是逐行处理的,逐行处理的意思就是说,当awk处理一个文本时,会一行一行进行处理,处理完当前行,再处理下一行,awk默认以"换行符"为标记,识别每一行,也就是 说,awk跟我们人类一样,每次遇到"回车换行",就认为是当前行的结束,新的一行的开始,awk会按照用户指定的分割符去分割当前行,如果没有指定分割符,默认使用空格作 为分隔符。
$0表示整行,$NF表示最后一个字段
注意,$NF和NF表达的意思不一样,NF表示当前行被分割开后,一共有几个字段
我们一次可以输出多列,注意用逗号分割
我们还可以自己添加字段
现在,我们来认识下一Pattern,也就是我们所说的模式
AWK 包含两种特殊的模式:BEGIN 和 END
BEGIN指文本处理之前执行的操作
END指处理完所有行之后处理的操作
例:
处理之前
执行之后
我们可以结合BEGIN模式和END模式一起使用
关系表达式
找出哪个用户bash 时以bin/bash 结尾的
控制语句


while
数组
linux 加密安全之AWK的更多相关文章
- linux文本分析利器awk
转 快速理解linux文本分析利器awk 原文链接 杜亦舒 性能与架构 awk是什么 如果工作中需要操作linux比较多,那么awk是非常值得学习的 awk是一个极其强大的文本分析工具,把文件逐行的读 ...
- 一个不会coding的girl Linux日常之命令awk
Linux日常之命令awk 参考:http://www.zsythink.net/archives/tag/awk/ 一. 命令awk简介 1. awk是一种编程语言,用于对文本和数据进行处理的 2. ...
- Linux三剑客grep、awk和sed
grep,sed 和 awk是Linux/Unix 系统中常用的三个文本处理的命令行工具,称为文本处理三剑客.本文将简要介绍这三个命令并给出基本用法. 管道 在介绍这两个命令之前,有必要介绍一下Uni ...
- Linux加密、安全版块、root密码破解
当一个入侵者进入了你的系统并且种植了木马,通常会想办法来隐蔽这个木马(除了木马自身的一些隐蔽特性外,他会尽量给你检查系统的过程设置障碍),通常入侵者会修改一些文件,比如管理员通常用ps -aux来查看 ...
- Linux之sed、awk
Linux 之AWK 命令 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在对数据分析并生成报告时,显得尤为强大. 简单来说awk就是把文件逐行的读入,以空格默认分隔 ...
- linux每天一小步---awk命令详解
1 命令功能 awk是linux环境下的一个强大的文本工具,由于awk天生提供对文件中文本分列进行处理,所以如果一个文件中的每行都被特定的分隔符(默认为空格)隔开,我们就可以将这个文件看成是有很多列的 ...
- Linux(8):linux三剑客sed和awk & Shell 编程(1)
linux 三剑客 之 sed # sed 是什么? # sed : 字符流编辑器 Stream Editor: sed 擅长 替换.取行等 # sed 的功能与版本: 处理纯文本文件.日志.配置文件 ...
- 【操作系统之四】Linux常用命令之awk
一.概念awk是一个报告生成器,拥有强大的文本格式化能力. 数据可以来自标准输入(stdin).一个或多个文件,或其它命令的输出: 依次对每一行进行处理,然后输出: 它在命令行中使用,但更多是作为脚本 ...
- Linux四剑客之awk命令
AWK详解 awk简介 awk其名称得自于它的创始人 Alfred Aho .Peter Weinberger 和 Brian Kernighan 姓氏的首个字母.实际上 AWK 的确拥有自己的语 ...
随机推荐
- 该虚拟机似乎正在使用中。如果该虚拟机未在使用,请按“获取所有权(T)”按钮获取它的所有权
问题 打开虚拟机镜像时报 VMware该虚拟机似乎正在使用中.如果该虚拟机未在使用,请按"获取所有权(T)"按钮获取它的所有权 解决方法 在你安装的镜像文件目录下找到后缀为.vmx ...
- grep命令详解与正则表达式
grep命令主要是做什么的呢 ?下面我们就来研究下. grep命令简单来说就是"过滤".就是把想看的数据通过grep过滤出来,把不想看的通过grep过滤掉. 它是一种强大的文本搜索 ...
- 『学了就忘』Linux基础命令 — 37、Linux中挂载操作的相关命令
目录 1.mount命令介绍 (1)mount命令说明 (2)mount命令格式 2.mount命令示例 3.mount -a命令说明 4.-o特殊选项说明 5.exec/noexec选项说明 挂载就 ...
- Unable to unwrap data, invalid status [CLOSED]-服务端webSocket报错
一.问题由来 现在的项目中在使用webSocket这门技术,主要用来在服务端和客户端进行实时的数据传输,因为需要及时的进行响应,所以才没有使用http请求的方式, 而是使用socket的方式,这样可以 ...
- VC练习一
1 #include<windows.h> 2 #include<stdio.h> 3 LRESULT CALLBACK WinSunProc(HWND hwnd,UINT u ...
- [tc13008]Egalitarianism2
考虑对于$n-1$个数$a_{i}$,函数$f(x)=\frac{\sum_{i=1}^{n-1}(x-a_{i})^{2}}{n-1}$的最小值恰在$x=\frac{\sum_{i=1}^{n-1} ...
- [atARC103F]Distance Sums
给定$n$个数$d_{i}$,构造一棵$n$个点的树使得$\forall 1\le i\le n,\sum_{j=1}^{n}dist(i,j)=d_{i}$ 其中$dist(i,j)$表示$i$到$ ...
- [bzoj4945]游戏
暴力枚举$2^{d}$表示这d个点中一定不选A或一定不选B(那么就包含了所有情况),然后就对原图跑2-sat即可注意一个细节,如果某一条限制中初始点不合法,就不用管了:如果最终点不合法,那么相当于初始 ...
- lambda函数实现链表的小根堆
struct ListNode { int val; ListNode *next; ListNode() : val(0), next(nullptr) {} explicit ListNode(i ...
- 《程序员漫画》| 萌新面试Google
Hello,大家好.今天的更新有点不一样.我给大家带来了一些程序员漫画.这些都是我自己画的哦.希望大家喜欢. 今天的漫画有简约的画风,也有一些写实的风格(漂亮MM总是有特殊待遇).不知道大家喜欢哪种呢 ...