基于Openssl的对称加密、密钥对的创建和应用,基于Openssl数字签名和数字证书的创建和应用



基于Openssl的对称加密、密钥对的创建和应用,基于Openssl数字签名和数字证书的创建和应用

背景

​SSL​​是Secure Sockets Layer(​​安全套接层协议​​)的缩写,可以在Internet上提供秘密性传输。​​Netscape​​公司在推出第一个​​Web浏览器​​的同时,提出了​​SSL协议​​标准。其目标是保证两个应用间通信的保密性和可靠性,可在服务器端和用户端同时实现支持。已经成为​​Internet​​上保密通讯的工业标准。

SSL能使用户/服务器应用之间的通信不被攻击者窃听,并且始终对服务器进行认证,还可选择对用户进行认证。SSL协议要求建立在可靠的​​传输层​​协议(​​TCP​​)之上。SSL协议的优势在于它是与​​应用层​​协议独立无关的,高层的​​应用层协议​​(例如:​​HTTP​​,​​FTP​​,​​TELNET​​等)能透明地建立于SSL协议之上。SSL协议在应用层协议通信之前就已经完成​​加密算法​​、通信​​密钥​​的协商及服务器认证工作。在此之后应用层协议所传送的数据都会被加密,从而保证通信的私密性。(摘自:百度百科)

算法

OpenSSL支持许多不同的加密算法:

对称加密

OpenSSL一共提供了8种​​对称加密算法​​,其中7种是分组加密算法,仅有的一种流加密算法是RC4。这7种分组加密算法分别是AES、DES、Blowfish、CAST、IDEA、RC2、RC5,都支持电子密码本模式(ECB)、加密分组链接模式(CBC)、加密反馈模式(CFB)和输出反馈模式(OFB)四种常用的​​分组密码​​加密模式。其中,AES使用的加密反馈模式(CFB)和输出反馈模式(OFB)分组长度是128位,其它算法使用的则是64位。事实上,DES算法里面不仅仅是常用的DES算法,还支持三个​​密钥​​和两个密钥3DES算法。

非对称加密

OpenSSL一共实现了4种非对称​​加密算法​​,包括​​DH​​算法、​​RSA​​算法、​​DSA算法​​和​​椭圆曲线算法​​(EC)。DH算法一般用于​​密钥​​交换。​​RSA算法​​既可以用于密钥交换,也可以用于​​数字签名​​,当然,如果你能够忍受其缓慢的速度,那么也可以用于​​数据加密​​。​​DSA算法​​则一般只用于数字签名。

信息摘要

OpenSSL实现了5种信息摘要算法,分别是MD2、MD5、MDC2、SHA(SHA1)和​​RIPEMD​​。SHA算法事实上包括了SHA和SHA1两种信息摘要算法。此外,OpenSSL还实现了DSS标准中规定的两种信息摘要算法DSS和DSS1。

对称加密

Openssl简单食用方法_密钥交换

准备1x.txt文件

Openssl简单食用方法_应用层_02

使用AES256加密

Openssl简单食用方法_数字签名_03

查看加密后的内容

Openssl简单食用方法_密钥交换_04

使用AES256解密

Openssl简单食用方法_加密算法_05

查看解密后的内容

散列函数

Openssl简单食用方法_对称加密_06

查看MD5值

查看SHAOpenssl简单食用方法_对称加密_07

256****值

非对称加密

Openssl简单食用方法_应用层_08

生成2048位RSA私钥

Openssl简单食用方法_数字签名_09

查看私钥内容

Openssl简单食用方法_应用层_10

利用私钥生成公钥

Openssl简单食用方法_对称加密_11

查看公钥内容

Openssl简单食用方法_密钥交换_12

使用公钥进行文件加密

Openssl简单食用方法_应用层_13

查看加密后的文件

Openssl简单食用方法_数字签名_14

使用私钥解密文件

Openssl简单食用方法_应用层_15

查看解密后的文件

数字签名

Openssl简单食用方法_密钥交换_16

使用私钥对文件签名

Openssl简单食用方法_对称加密_17

生成sigh.sha256,然后得到可读版本

Openssl简单食用方法_加密算法_18

查看签名后的文件

Openssl简单食用方法_对称加密_19

对base64进行解码

Openssl简单食用方法_加密算法_20

Openssl简单食用方法_对称加密_21

核实签名

证书

Openssl简单食用方法_应用层_22

创建一个证书签名请求(CSR),

Openssl简单食用方法_对称加密_23

生成自签证书(有效期1年)

Openssl简单食用方法_对称加密_24

生成证书可读版本及部分内容