#yyds干货盘点#openssl

Posted 王华_linux

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#yyds干货盘点#openssl相关的知识,希望对你有一定的参考价值。

官网:https://www.openssl.org/​​​​​​​​​​​​​

OpenSSL计划在1998年开始,其目标是发明一套自由的加密工具,在互联网上使用。OpenSSL以Eric Young以及Tim Hudson两人开发的SSLeay为基础,随着两人前往RSA公司任职,SSLeay在1998年12月停止开发。因此在1998年12月,社群另外分支出OpenSSL,继续开发下去

OpenSSL管理委员会当前由7人组成有13个开发人员[3]具有提交权限(其中许多人也是OpenSSL管理委员会的一部分)。只有两名全职员工(研究员),其余的是志愿者

该项目每年的预算不到100万美元,主要依靠捐款。 TLS 1.3的开发由 Akamai 赞助

OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连线者的身份。这个包广泛被应用在互联网的网页服务器上

其主要库是以C语言所写成,实现了基本的加密功能,实现了SSL与TLS协议。OpenSSL可以运行在OpenVMS、 Microsoft Windows以及绝大多数类Unix操作系统上(包括Solaris,Linux,Mac OS X与各种版本的开放源代码BSD操作系统)

心脏出血漏D:OpenSSL 1.0.1版本(不含1.0.1g)含有一个严重漏D,可允许攻J 者读取服务器的内存信息。该漏D于2014年4月被公诸于世,影响三分之二的活跃网站

包括三个组件:

  libcrypto:用于实现加密和解密的库

  libssl:用于实现ssl通信协议的安全库

  openssl:多用途命令行工具

1. Base64 编码

Base64是网络上最常见的用于传输 8Bit 字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法

#yyds干货盘点#openssl_centos

base64的编码过程如下:

将每3个字节放入一个24位的缓冲区中,最后不足3个字节的,缓冲区的剩余部分用0来填补。然后每次取出6位(2的6次方为64,使用64个字符即可表示所有),将高2位用0来填充,组成一个新的字节,计算出这个新字节的十进制值,对应上面的编码表,输出相应的字符。这样不断地进行下去,就可完成对所有数据的编码工作。

按照以上规则对文本Man编码如下:

#yyds干货盘点#openssl_开放源代码_02

[root@centos8 ~]#echo -n Man | base64
TWFu
[root@centos8 ~]#echo TWFu | base64 -d
Man
[root@centos8 ~]#
[root@centos8 ~]#echo -n ab | base64
YWI=
[root@centos8 ~]#echo -n ab | base64 | base64 -d ab
[root@centos8 ~]#











2.openssl命令

两种运行模式:

 交互模式

 批处理模式

三种子命令:

[root@centos8 ~]#openssl version    
OpenSSL 1.1.1 FIPS 11 Sep 2018
[root@centos8 ~]#openssl help
Standard commands
asn1parse ca ciphers cms
crl crl2pkcs7 dgst dhparam
dsa dsaparam ec ecparam
enc engine errstr gendsa
genpkey genrsa help list
nseq ocsp passwd pkcs12
pkcs7 pkcs8 pkey pkeyparam
[root@centos8 ~]#openssl
OpenSSL> help
Standard commands
asn1parse ca ciphers cms
crl crl2pkcs7 dgst dhparam
......
OpenSSL> ca --help
Usage: ca [options]
Valid options are:
-help Display this summary
-verbose Verbose output during processing
-config val A config file
......
OpenSSL>q
[root@centos8 ~]#










 消息摘要命令

 加密命令

3.  openssl命令对称加密

工具:openssl enc, gpg

算法:3des, aes, blowfish, twofish

enc命令:帮助:man enc

加密

man enc

#yyds干货盘点#openssl_centos_03

openssl enc -e -des3 -a -salt -in testfile -out testfile.cipher

[root@c7-157 ~]# openssl enc -e -des3 -a -salt -in /fstab -out fstab.cipher
enter des-ede3-cbc encryption password:
Verifying - enter des-ede3-cbc encryption password:
You have new mail in /var/spool/mail/root
[root@c7-157 ~]# ls /
bin dev fstab home lib64 mnt proc run srv tmp var
boot etc fstab.gpg lib media opt root sbin sys usr wang.pubkey
[root@c7-157 ~]# ls
20.sh anaconda-ks.cfg bdjb.sh fstab.cipher hellodb_innodb.sql testlog.sql
You have new mail in /var/spool/mail/root
[root@c7-157 ~]# cat fstab.cipher
U2FsdGVkX19UMWCUae4hwixe4irrZWX+2kJeHm4c5uuuDibrZPIsWwDnzZKlHi8x
J2/s02mzi2Qfl8lmnHnPNycpZN8StVUP6cNvQBjo0ixXQdpkRKSmz2tBFU9Ja5ym
B2Nf/ObUSkPJKxjGDaYbmAZZ4htiBzsrvFbpziTI2uub5HLDc3mIEnw3Nrx909c7
j9zalALnVSwGjTaWBLxRPMUg3E+toyGUmfDmvrDbyMJ+Jf37xrCq2KhQmOp2+Hb3
GW3XgMB//SK84YYjag3cHAOYyPY4WWZ7CRfmndMcZDs4Vzq6yaLYbBY6eIkvwYUA
Ludl49zRse/5G1PNp6awZkfiVCViYMFcczCiC1PABddPFIG32RICRlaaOO/MjbRN
ZdxrWfOK8riSjBiF55jnyt12UmB6VeSLvuHjhypWpWDv9X0cykmGxWgOaklTFXZk
#yyds干货盘点#使用HTTPS加密网页数据

#yyds干货盘点# Java | 关于synchronized相关理解

#yyds干货盘点# mybatis源码解读:executor包(语句处理功能)

#yyds干货盘点#SSH远程连接介绍

#yyds干货盘点#JS两个大数相加

#yyds干货盘点#愚公系列2023年02月 .NET/C#知识点-程序运行计时的总结