openssl工具

openssl:

linux系统自带的加密工具
官网:https://www.openssl.org/

包括三个组件

  • libcrypto:用于实现加密和解密的库
  • libssl:用于实现ssl通信协议的安全库
  • openssl:多用途命令行工具

Base64 编码:

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

base64的编码过程如下:

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

openssl命令:

两种运行模式:

  • 交互模式
  • 批处理模式

三种子命令:

  • 标准命令
  • 消息摘要命令
  • 加密命令

openssl命令对称加密:

工具:

openssl enc、gpg

算法:

3des, aes, blowfish, twofish

enc子命令:

帮助:man enc
例:
openssl enc -e -des3 -a -in red -out red.xx
openssl enc -e -des3 -a -in red.xx

openssl命令单向哈希加密:

工具:

openssl dgst、md5sum、sha1sum等

算法:

md5sum, sha1sum, sha224sum,sha256sum…

dgst子命令:

帮助:man dgst
MAC:

Message Authentication Code,单向加密的一种延伸应用,用于实现网络通信中保证所传输数据的完整性机制

HMAC:

hash-based MAC,使用md5或sha1算法

例:
openssl md5 fstab
openssl sha512 fstab
sha256sum red

openssl命令生成用户密码:

#sha512加密,标准输入读取,-salt加盐
echo 123456|openssl passwd -6 -salt qwert134 -stdin		

openssl passwd -6 -salt qwert134 123456
useradd -p `echo 123456|openssl passwd -6 -salt Y16DiwuVQtL6XCQK -stdin` hj

openssl命令生成随机数:

随机数生成器:伪随机数字,利用键盘和鼠标,块设备中断生成随机数

随机数生成方法:

  • /dev/random:仅从熵池返回随机数;随机数用尽,阻塞
  • /dev/urandom:从熵池返回随机数;随机数用尽,会利用软件生成伪随机数,非阻塞
例:
openssl rand -base64 9		#可用于随机密码
openssl rand -hex 9
#特别生成办法:用tr随机,取前30再mdk5加密
tr -dc '[:alnum:]' < /dev/urandom|head -c10	
tr -dc 'a-zA-Z0-9' < /dev/urandom|head -c10

openssl命令实现 PKI:

公钥加密:

算法:

RSA, ELGamal

工具:

gpg, openssl rsautl(man rsautl)

数字签名:

算法:

RSA, DSA, ELGamal

密钥交换:

算法:

dh
DSA:Digital Signature Algorithm
DSS:Digital Signature Standard
RSA

生成私钥:

openssl genrsa -out 路径 [-des3] [加密位数,默认2048]
例:
openssl genrsa -out a.key 2048
openssl genrsa -out app2.key -des3 2048		#给私钥加密

从私钥提取公钥:

openssl rsa -in a.key -pubout -out a.pub
posted @ 2022-01-27 11:42  suyanhj  阅读(1354)  评论(0)    收藏  举报