0x01 OpenSSL的基本概念

OpenSSL是为网络通信提供安全性和数据完整×××的一种协议,其中包括囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议。


0x02 加密和解密的基本概念

这里说一下加密和解密的过程:

java openssl加密文件 openssl密码加密_数据

文件加密 :原始数据 -> 单向加密提取特征码 -> 使用私钥加密特征码并附加于原始数据中 -> 使用对称加密算法加密全部数据 -> 使用解密者的公钥加密 密码附加于已加密的数据中
      
     文件解密:使用自己的私钥解密对方用自己公钥加密的数据 -> 使用对称秘钥解密对称加密的数据 -> 使用加密者的公钥解密特征码 -> 使用单向加密算法验证特征码用来验证数据完整性




现在常用的有两种加密技术,对称加密与非对称加密:




     对称加密:通信双方使用同一个秘钥,数据发送方使用秘钥加密数据,接收方使用同一个秘钥进行解密。      非对称加密:数据发送方使用接收方的公钥对数据进行加密,接收方可以使用自己的私钥进行解密。      公钥:相对私钥可以公开流通,用于数据的加密      私钥:不允许外流,用于解密与之对应的公钥所加密的数据



0x03 使用OpenSSL进行加密

      对称加密:    openssl  enc  des3  -a  -salt -in [File_Name]  -out  [File_Name] 



        root@Qiudays /]# openssl enc -des3 -a -salt -in /test -out /test_jami         enter des-ede3-cbc encryption password: #输入加密密码         Verifying - enter des-ede3-cbc encryption password:确定加密密码



        des3 # 密算法         -a   # 编码格式         -salt # 加盐         -in   # 后跟需要加密的文件         -out  # 后跟加密后的文件




              加密前:   



      [root@Qiudays /]# cat test       Qiudays



加密后:



      [root@Qiudays /]# cat test_jami        U2FsdGVkX1/esyJ/so4zcWPDXvzN+j88CA3k1WB3Qic=



  

     单向加密: openssl  dgst  -md5  【File_Name】



    [root@Qiudays /]# openssl dgst -md5 test      MD5(test)= 45e9b44d313c128548e42bfff7ba88dc



      -MD5 # 以MD5算法进行加密




0x04 随机数加密用户口令

openssl passwd -1 -salt 'openssl rand -base64 位数'



[root@Qiudays /]# openssl passwd -1 -salt 'openssl rand -base64 55' Password:  $1$openssl $svda7I/3byMe2z893Jy8r.










转载于:https://blog.51cto.com/qiudays/1638146