首页 > 运维 > 安全 > 正文

如何进行OpenSSL基础中的加密及解密

WBOY
发布: 2023-05-22 09:20:06
转载
3235 人浏览过

当提到OpenSSL时,首先必须提到SSL。可能没有人希望他们的网络活动被其他网民监听到,当我们在日常上网时。因此就需要一种协议为我们的网络通信保驾护航。SSL协议就是基于这样的工作背景开发的,它能使用户跟服务器应用之间的通信不被攻击者窃听,并且始终对服务器进行认证,可选择的对用户进行认证。

通常情况下,SSL协议是基于可靠的传输层协议(TCP)建立的。SSL协议的优势在于它是与应用层协议独立无关的,高层的应用层协议(例如:HTTP,FTP,TELNET等)能透明地建立于SSL协议之上。在进行应用层协议通信之前,SSL协议就已经完成了加密算法的处理、通信密钥的协商和服务器认证工作。所有经过应用层协议传输的数据都会被加密,以确保通信的机密性。 

   s所谓加密,只不过是将明文通过某种机制转换成密文,网络通信时,使用的加密安全机制有:对称加密,公钥加密,单向加密。    

  对称加密的特性与缺陷:加密解密使用同一个密钥,将明文分割成固定大小的块,逐个进行加密。其缺陷在于通信双方要管理的密钥过多,而且密钥分发困难。其加密算法有:DES、3DES、AES。

公钥加密具有以下特征:其密钥成对出现,常用的加密算法包括RSA和DSA。其用途有:一是用于身份认证:发送方使用自己的私钥加密数据,接收方使用与之公钥解密;二是用于密钥交换:发送方使用接收方的公钥加密数据,接收方使用自己的私钥解密。公钥在私钥中提取出来

  单向加密的特性:定向输出,有雪崩效应。该加密算法包括MD5、SHA1、SHA256、SHA384和SHA512。常用于提取数据的特征码。

在今年4月10日,安全协议OpenSSL曝出了本年最严重的安全漏洞,“心脏出血”。使人们开始重视这个开源协议。那么OpenSSL到底是什么呢?其实OpenSSL可以看作是SSL的库,由openssl多用途的命令行工具、公共加密库libcrypto、以及ssl协议库libssl三大组件组成。

    openssl多用途的命令行工具可用于实现对称加密

                        openssl enc -e -对称加密算法 -a -salt -in 需要加密的文件 -out 加密后的文件输出路径

例如,对/etc/fstab这个文件使用DES3算法加密: openssl enc -e -des3 -a -salt -in /etc/fstab -out /tmp/fstab 

如何进行OpenSSL基础中的加密及解密

加密结果:

如何进行OpenSSL基础中的加密及解密

   解密:openssl enc -d -对称加密算法 -a -salt -in 需要解密的文件 -out 解密后的文件输出路径

例如,将上面加密的文件解密: openssl enc -d -des3 -a -salt -in /tmp/fstab -out /tmp/Fstab

如何进行OpenSSL基础中的加密及解密

解密结果:

如何进行OpenSSL基础中的加密及解密

    还可以用于公钥加密中的密钥交换:(umask 077;openssl genrsa -out 输出私钥文件路径)

              从私钥中提取公钥: openssl rsa -in 私钥文件路径 -pubout

注:()表示命令在子shell中执行,umask 077 保证了私钥文件的访问权限

如何进行OpenSSL基础中的加密及解密

如何进行OpenSSL基础中的加密及解密

    还可用于单向加密:openssl dgst -md5|-sha1 -out 文件输出路径 要加密的文件

例如,将/etc/passwd使用md5加密:openssl dgst -md5  -out /tmp/md5passwd /etc/passwd

如何进行OpenSSL基础中的加密及解密

    还可以用于生成用户密码: openssl passwd -1 -salt SALT_STRING 用户密码

如何进行OpenSSL基础中的加密及解密

    还可以用于生成随机数:openssl rand -hex 字节数

如何进行OpenSSL基础中的加密及解密

以上是如何进行OpenSSL基础中的加密及解密的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:yisu.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!