黑客学习-密码学:基于openssl的算法加密和解密

在Linux系统中自带openssl工具,加密和解密,可以在Linux上进行。利 openssl工具,用DES、3DES、IDEA、AES等对称算法对文件加密解密,和用RSA非对称算法对文件加密解密。

1、对称加密

可以用命令man enc 查看所有的加密算法

 对于对称算法的加密,命令都比较简单。命令如下

加密命令:openssl enc -e 算法 -in 文件a -out 文件b  
 
解密命令:openssl enc -d 算法 -in 文件c -out 文件d

-e :加密模式

a文件:所要加密的对象文件

b文件:通过加密之后 输出的加密文件

-d :加密模式

c文件:所要解密的对象文件

d文件:通过解密之后输出的文件

DES算法加密

例如,用openssl实现DES算法加密,对文件aaa.des进行加密,加密之后的文件输出为aaa.cfb.dm

命令:

加密:openssl enc -e -des-cfb -in aaa.des -out aaa.cfb.enc
解密:openssl enc -d -des-cfb -in aaa.cfb.enc -out aaa.cfb.dm

第一步:通过man enc命令查看DES算法的模式

黑客学习-密码学:基于openssl的算法加密和解密_第1张图片

 第二步:使用某一模式对文件进行加密和解密,例如选择DES算法的CFB模式,黑客学习-密码学:基于openssl的算法加密和解密_第2张图片

黑客学习-密码学:基于openssl的算法加密和解密_第3张图片

3DES、IDEA、AES算法的加密过程和DES算法一致

3DES算法加密解密

加密:openssl enc -e -des-des3 -in bbb.des3 -out bbb.des3.enc
  
解密:openssl enc -d -des-des3 -in bbb.des3.enc -out bbb.des3.enc.dm

​​​​​​​黑客学习-密码学:基于openssl的算法加密和解密_第4张图片

AES算法加密

查看AES的加密方式:man enc,结果如图

黑客学习-密码学:基于openssl的算法加密和解密_第5张图片

加密:openssl enc -e -aes-192-cbc -in test.txt -out test.txt.enc
  
解密:openssl enc -d -aes-192-cbc -in test.txt.enc -out test.txt.dm

黑客学习-密码学:基于openssl的算法加密和解密_第6张图片

 

IDEA算法加密解密

IDEA的加密模式如下

黑客学习-密码学:基于openssl的算法加密和解密_第7张图片

用CBC模式加密:

加密:openssl enc -e -idea-cbc -in test.txt -out test.idea.enc
  
解密:openssl enc -d -idea-cbc -in test.idea.enc -out test.idea.dm

加密:

黑客学习-密码学:基于openssl的算法加密和解密_第8张图片

解密:

黑客学习-密码学:基于openssl的算法加密和解密_第9张图片

 

非对称加密

查看opnssl 的RSA参数说明:man enc

黑客学习-密码学:基于openssl的算法加密和解密_第10张图片

 黑客学习-密码学:基于openssl的算法加密和解密_第11张图片

对测试文件进行RSA加密:

第一步:生成秘钥文件:openssl genrsa -out rsa.key 2048
rsa.key:秘钥文件
2048:2048位的秘钥文件,可以选其他位

第二步:根据私钥提取公钥:openssl rsa -in rsa.key -out rsa_pub.key
rsa.key :秘钥文件
rsa_pub.key :公钥文件

第三步:使用公钥加密:openssl rsautl -encrypt -in test.txt -inkey rsa_pub.key -pubin -out test.rsa.enc
-encrypt :使用加密模式
test.txt :所要加密的对象文本
-inkey :使用秘钥,默认是使用私钥
rsa_pub.key :公钥文件
-pubin :使用公钥,因为使用-inkey默认是使用私钥,所以用-pubin改为使用公钥,对文本加密
test.rsa.enc :加密之后输出的文本

第四步:使用秘钥解密:openssl rsautl -decrypt -in test.rsa.enc -inkey rsa.key -out test.rsa.dm
-decrypt :使用解密模式
test.rsa.enc:所要解密的对象文本
-inkey :使用秘钥,默认是使用私钥,
rsa.key:秘钥文件
test.rsa.dm:解密后输出的文件

第一步:生存2048位的秘钥文件:rsa.key ,

黑客学习-密码学:基于openssl的算法加密和解密_第12张图片

第二步:根据私钥提取公钥:

黑客学习-密码学:基于openssl的算法加密和解密_第13张图片

 第三步:使用公钥加密:

黑客学习-密码学:基于openssl的算法加密和解密_第14张图片

第四步:利用私钥解密

 

 

你可能感兴趣的:(黑客学习,linux)