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

背景

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

SSL能使用户/服务器应用之间的通信不被攻击者窃听,并且始终对服务器进行认证,还可选择对用户进行认证。SSL协议要求建立在可靠的传输层协议(TCP)之上。SSL协议的优势在于它是与应用层协议独立无关的,高层的应用层协议(例如:HTTPFTPTELNET等)能透明地建立于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。

对称加密


准备1x.txt文件


使用AES256加密


查看加密后的内容


使用AES256解密


查看解密后的内容

散列函数


查看MD5值

查看SHAimg
256****值

非对称加密


生成2048位RSA私钥


查看私钥内容


利用私钥生成公钥


查看公钥内容


使用公钥进行文件加密


查看加密后的文件


使用私钥解密文件


查看解密后的文件

数字签名


使用私钥对文件签名


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


查看签名后的文件


对base64进行解码

img
核实签名

证书


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


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


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