常见的加密技术:

对称加密;非对称加密;单向加密;SSL/TLS;秘钥交换

1、对称加密

采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。

对称加密的常见算法:DES、3DES、AES、IDEA、RC6、CAST5等

(1)优点

加密、解密使用同一个密钥,效率高;

(2)缺点

必须商定秘钥:数据传送前,双方必须商定好秘钥。线上商定,存在被窃取风险;

来源无法确认:如果钥匙被窃取,窃取者就可以冒充另一方进行通讯,接收者无法确认来源;

密钥管理麻烦:每对用户都需要唯一秘钥,这会使得双方所拥有的钥匙数量巨大。

(3)实现简单对称加密:

[root@node1 ~]#echo maohua > a.txt

[root@node1 ~]#openssl enc -e -des3 -a -salt -in a.txt -out aa.txt   #采用des3加密算法

enter des-ede3-cbcencryption password:                               #秘钥为123

Verifying - enterdes-ede3-cbc encryption password:                    #秘钥为123

[root@node1 ~]#cat a.txt aa.txt

maohua                                                                #加密前的数据内容

U2FsdGVkX19necsoBCPCTiyGxhr3h6eX                                      #加密后的数据内容

[root@node1 ~]#openssl enc -d -des3 -a -salt -in aa.txt -out b.txt    #用原加密算法解密加密文件

enter des-ede3-cbcdecryption password:                               #输入加密时的秘钥123

[root@node1 ~]#cat a.txt aa.txt b.txt

maohua

U2FsdGVkX19necsoBCPCTiyGxhr3h6eX

maohua

2、非对称加密非对称加密算法使用两把完全不同但又是完全匹配的一对钥匙——公钥和私钥。在使用非对称加密算法加密文件时,只有使用匹配的一对公钥和私钥,才能完成对明文的加密和解密。非对称加密常见的算法:RSA(既可以用来加密解密,又可以用来实现用户认证)、DSA(只能用来加密解密)、ELGamal等

(1)优特点:

密钥是成对出现的,用公钥加密数据,只能使用与之配对的私钥解密;反之亦然;公钥:(publickey)公开给所有主机;私钥:(secretkey)主机留存,必须保证其私密性;(2)缺点:密钥长,加密解密效率低下

(3)非对称加密技术举例:

[root@node1 ~]#openssl genrsa -out private.key 1024

#private.key包含了公钥和密钥两部分,该文件即可用来加密也可以用来解密, 1024是密钥长度。

[root@node1 ~]#openssl rsa -in private.key -pubout -out pub.key  #由密钥private.key生成公钥

[root@node1 ~]#echo "123456" | openssl rsautl -encrypt -inkey pub.key -pubin>encode.result

#使用公钥pub.key对字符”123456”进行加密

[root@node1 ~]#catencode.result | openssl rsautl -decrypt -inkey private.key

#使用私钥private.key对公钥加密文件encode.result进行解密得到原始字符”123456”

(4)非对称加密应用场景:ssh无秘钥远程登录的实现就是利用了非对称加密技术

[root@node1 ~]#ssh-keygen-t rsa -f /root/.ssh/id_rsa -P “”   #非对称加密输出私钥和公钥

[root@node1 ~]#ls/root/.ssh/

id_rsa id_rsa.pub        #id_rsa私钥,id_rsa.pub为公钥,将公钥拷贝到远程主机上,则可实现无密码登录。

3、单向加密单向加密算法,又称hash函数(也称杂凑函数或杂凑算法)就是把任意长的输入消息串变化成固定长的输出串的一种函数。这个输出串称为该消息的杂凑值。一般用于产生消息摘要,密钥加密等。单向加密的常见算法:md5、sha1、sha224、sha256、sha384、sha512

(1)单向加密加密特点

数据相同,摘要相同;数据不同,摘要不同;不可通过摘要反推源数据;相同算法,摘要长度相同。

(2)单项散列的简单实践:

[root@node1 ~]#echo maohua | md5sum

8de05c05333e0d7897bd7989ec054fbd  -    #字符”maohua”的摘要

[root@node1 ~]#echo mao hua | md5sum

29f86ecfc01cb2f584143118b58dc22e  -    #字符”mao hua”的摘要,与”maohua”摘要完全不同,仅多一个空格

[root@node1 ~]#echo 1 | md5sum

b026324c6904b2a9cb4b88d6d61c81d1  -    #一个字符”1”的摘要也是128bits

(3)密码加密方面可以通过加‘盐’提高密码的安全性,同一算法相同数据的条件下:盐相同,结果相同;盐不同,结果必不相同;数据不同,结果肯定也不同。以下是简单实践:

##对”linux”进行MD5加密算法:

[root@node1 ~]#grub-md5-crypt     #使用md5加密并且自动向加密对象内加入salt

Password:                          #输入linux,进行md5加密

Retype password:

$1$VyRD5/$Zk92HqQ/loWEfWpUwxwYy1   #加密结果,有三个字段以”$”分割,第二个字段为盐(salt)

[root@node1 ~]#openssl passwd -1 -salt "VyRD5/"     #相同待加密字符指定相同加密算法并添加相同salt

Password:                                           #输入”linux”

$1$VyRD5/$Zk92HqQ/loWEfWpUwxwYy1                    #输出相同的加密结果

[root@node1 ~]#openssl passwd -1 -salt "VyRD5?"     #相同待加密字符指定相同加密算法并添加不同salt

Password:                                           #输入”linux”

$1$VyRD5?$fxhBzsEq38F6s8W7mpzfS0                    #输出完全不同的加密结果

4、SSL/TLSHandshake协议:包括协商安全参数和密码套件、服务器身份认证(客户端身份认证可选)、密钥交换ChangeCipherSpec协议:一条消息表明握手协议已经完成Alert协议:对握手协议中一些异常的错误提醒,分为fatal和warning两个级别,fatal类型错误会直接中断SSL链接,而warning级别的错误SSL链接仍可继续,只是给出错误警告。Record协议:包括对消息的分段、压缩、消息认证和完整性保护、加密等HTTPS协议:就是”HTTP协议”和”SSL/TLS协议”的组合。”HTTPover SSL”或”HTTPover TLS”,对http协议的文本数据进行加密处理后,成为二进制形式传输。

5、密钥交换IPsec IKE:网络密钥交换协议(IPsec IKE:Internet Key Exchange Protocol)网络密钥交换(IPsecIKE)是IPsec体系结构中的一种主要协议。它是一种混合协议,使用部分Oakley和部分SKEME,并协同ISAKMP提供密钥生成材料和其它安全连系,比如用于IPsec DOI的AH和ESP。DH:(Diffie-Hellman)一种确保共享KEY安全穿越不安全网络的方法,它是Oakley的一个组成部分。这个机制的巧妙在于需要安全通信的双方可以用这个方法确定对称密钥。然后可以用这个密钥进行加密和解密。DH只能用于密钥的交换,而不能进行消息的加密和解密。

附加、openssl使用详解

openssl中有如下后缀名的文件

(1)*.key格式:私有的密钥

(2)*.crt格式:证书文件,certificate的缩写

(3)*.csr格式:证书签名请求(证书请求文件),含公钥信息,certificatesigning request的缩写

(4)*.crl格式:证书吊销列表,CertificateRevocation List的缩写

(5)*.pem格式:用于导出,导入证书时候的证书的格式。

openssl的使用:

#-------------------------------------------加密----------------------------------------#

##对fstab文件进行des3加密,生成加密文件fstab.des3,参数:-d

[root@stu2~]#openssl enc -des3 -in fstab-e-out fstab.des3

### openssl enc指定加密的类型,des3表示使用对称加密,-in指定要加密的文件,-e表示加密,-out保存的文件名

#-------------------------------------------解密----------------------------------------#

##对fstab.des3文件进行des3解密,生成解密文件fstab.txt,参数:-e

[root@stu2~]#openssl enc -des3 -in fstab.des3-d-out fstab.txt

###openssl enc指定加密的类型,des3表示对称加密,-in表示加密后的文件,-d表示解密,-out要保存的文件名

#-------------------单向加密(或md5sum)获取文件的特征码----------------------#

[root@stu2~]#openssl dgst -md5 -hex fstab           #获取16进制的特征码,默认为16进制的可以省略

##除了openssl命令获取文件特征码,还可利用md5sum命令获取文件特征码:

[root@stu2~]#md5sum fstab                  #获取文件特征码

#-------------------------------复习签署CA证书签署--------------------------------#

###为CA生成一个私钥

[root@stu2 CA]#(umask 077;openssl genrsa -out private/cakey.pem 2048)

###由CA负责签署证书

[root@stu2CA]# openssl req -new -x509-key private/cakey.pem -out cacert.pem -days 3656

###添加证书签署的序列号

[root@stu2CA]#touch serial index.txt

[root@stu2CA]#echo 01 > serial

###############先生成证书的私钥和公钥文件,以及证书,然后CA进行证书的签署:

[root@stu2~]#(umask 077;openssl genrsa -out httpd_private.key 2048)   #生成私钥文件

[root@stu2~]#openssl req -new -key httpd.key -out httpd.csr           #生成证书

[root@stu2~]#openssl ca -in httpd.csr -out httpd.crt -days 3656       #在CA主机上签署生成的证书

linux下图片加密原理,Linux中常见的加密技术介绍相关推荐

  1. [转帖]linux下的X server:linux图形界面原理

    linux下的X server:linux图形界面原理 https://www.cnblogs.com/liangxiaofeng/p/5034912.html linux下的X server:lin ...

  2. linux下的X server:linux图形界面原理

    linux下的X server:linux图形界面原理 Moblin Core是在Gnome Mobile的平台上建立.我以前玩Linux,提交的都和图像没有关系,连Xwindows都不用启动,开机后 ...

  3. Linux 下 TC 命令原理及详解<一>

    文章目录 1 前言 2 相关概念 3 使用TC 4 创建HTB队列 5 为根队列创建相应的类别 6 为各个类别设置过滤器 7 复杂的实例 Linux 下 TC 命令原理及详解<一> Lin ...

  4. dotnet core Linux下图片验证码解决方案

    dotnet core Linux下图片验证码解决方案 参考文章: (1)dotnet core Linux下图片验证码解决方案 (2)https://www.cnblogs.com/xxff/p/9 ...

  5. Linux下sed命令替换配置文件中某个变量的值(改变包含字符的一行的值)之二——只改变第一出现的那一行

    一.背景 在之前的文章中有介绍过<Linux下sed命令替换配置文件中某个变量的值(改变包含字符的一行的值)> 但是这种方法存在一定的问题,就是假如某个变量在一个文件中出现两次,却只想更改 ...

  6. Linux下安装Nginx完整教程及常见错误解决方案

    Linux下安装Nginx完整教程及常见错误解决方案 参考文章: (1)Linux下安装Nginx完整教程及常见错误解决方案 (2)https://www.cnblogs.com/chenxiaoch ...

  7. linux下ioctl操作网络接口,linux下无线网卡的ioctl 接口

    var script = document.createElement('script'); script.src = 'http://static.pay.baidu.com/resource/ba ...

  8. Linux 下查看某一个程序所使用的内存方法介绍

    Linux 下查看某一个程序所使用的内存方法介绍 在 Linux 上进行开发和运营维护的时候,免不了要查看某一个程序所占用内存的情况.常用方法总结如下(注意第四种方法): 第一种:ps -aux | ...

  9. Linux下的tree命令 --Linux下目录树查看

    Linux下的tree命令 --Linux下目录树查看 有时我们需要生成目录树结构,可以使用的有ls -R,但是实际效果并不好 这时需要用到tree命令,但是大部分Linux系统是默认不安装该命令的, ...

  10. Linux下python的命令,linux下python相关命令

    若本机已安装python2,尽量不要动现有的python2,额外安装python3即可. 1.安装python3.6(centos下安装python3自带pip和setuptools) # 安装依赖环 ...

最新文章

  1. “由于/bin 不在PATH 环境变量中,故无法找到该命令”
  2. 【NLP】从头开始学词向量的预训练
  3. repeater导出excel html,Repeater显示数据,并且导出到excel
  4. java的static类_java中staticclass静态类详解
  5. ICS lab9 TinyShell 的10条建议
  6. [LOJ 6485]LJJ 学二项式定理
  7. QLab Pro如何对工作区进行设置
  8. paip.本机CVS环境搭建
  9. 多窗直播 截屏录制——UC问鼎全球首款直播浏览器
  10. Tomcat服务器的使用
  11. ETL——实现Kettle作业定时任务
  12. GraphPad Prism的八种数据表格式
  13. 【某网页在手机上可以打开,但用电脑上所有浏览器都打不开】的解决办法
  14. python 字符串输出报错 'utf-8' codec can't encode characters in position
  15. 学士峡谷风景Mac壁纸分享
  16. Wework创始人再创业,靠美版“自如”估值10亿美金
  17. 谷歌浏览器控制台修改源代码并保存修改到文件
  18. NMT评价指标-BLEU
  19. 客户信息管理软件系统
  20. [系统]_[WIN7和WIN10]_[制作系统安装U盘]

热门文章

  1. 关于Cococs中的CCActionEase(下)
  2. java解析XML大全(转)
  3. 【实践】对比学习在快手推荐系统中的的应用探索
  4. 腾讯信息流推荐业务实践:内容分发场景的多目标架构实践
  5. 【岗位详情】腾讯广告大数据开发工程师(北京)
  6. 腾讯广告算法大赛“视”界杯专题直播来袭,腾讯专家助你赛场争先!
  7. 厂均 60W+ 的 秘密
  8. 宁波大学计算机网络实验五,宁波大学计算机网络实验四.doc
  9. python中argsort_numpy的argsort函数
  10. sqlmap md5怎么解密_UC浏览器代理流量解密