openss工具简介
- 格式:rtf
- 大小:143.99 KB
- 文档页数:8
Windows下openssl的下载安装和使⽤⽅法安装openssl有两种⽅式,第⼀种直接下载安装包,装上就可运⾏;第⼆种可以⾃⼰下载源码,⾃⼰编译。
下⾯对两种⽅式均进⾏详细描述。
⼀、下载和安装openss⽅法⼀:直接使⽤openssl安装包Window 的openssl的安装包的下载地址为:⼀般在安装openssl之前还需要vs的⼀些插件,该地址中也提供了相关插件的下载。
如下图即为openssl的安装及其vs插件在下载⽹页的截图。
⽅法⼆:⾃⼰编译openssl此过程⽐较复杂,需要先安装perl、vs等软件,然后才能编译openssl。
1、下载并安装perl,1)下载路径:2)安装与配置:直接运⾏安装⽂件(例如:ActivePerl-5.16.3.1604-MSWin32-x86-298023.msi)即可完成安装;安装过程将⾃动完成环境变量的配置(安装完成之后,可以在系统环境变量⾥看到perl的bin⽬录(例如: C:\Program Files\perl\site\bin;)已经被加⼊进来),⽆需再⼿⼯配置;3)测试安装是否成功:进⼊perl安装⽬录的eg⽂件夹,执⾏“perl example.pl”若显⽰“Hello from ActivePerl!”,则说明Perl安装成功。
如下图所⽰:perl安装成功之后就可以开始使⽤Perl的相关命令来进⾏OpenSSL的安装了。
2、openssl可以⾃⼰下载源码编译也可以直接下载安装包安装完之后即可使⽤。
2.1使⽤源码编译openssl1) 下载openssl源码的路径:2)配置VS2005的环境变量(因为后⾯编译openssl时,将会⽤到vs2005⾃带的nmake⼯具)。
执⾏VS2005的bin⽬录下(例如:C:\Program Files\Microsoft Visual Studio 8\VC\bin)的vcvars32.bat⽂件即可完成配置,如下图所⽰:3)配置openssl(1)将下载后的openssl压缩⽂件(例如:openssl-1.0.1g.tar.gz)解压缩到某⽬录下(例如:C:\Program Files\openssl-1.0.1g);(2)通过命令窗⼝,进⼊openssl的⽬录C:\Program Files\openssl-1.0.1g中,执⾏“perl Configure VC-WIN32”即可完成配置,如下图所⽰:(3)执⾏do_masm在openssl的⽬录下执⾏ms\do_masm,注意不能进⼊到ms下⾯直接执⾏do_masm,否则会提⽰找不到⽂件“util\makfiles.pl”之类的错误。
openface的使用摘要:1.OpenFace 简介2.OpenFace 的主要功能3.OpenFace 的使用步骤4.OpenFace 的应用案例5.OpenFace 的优势与不足正文:1.OpenFace 简介OpenFace 是一个基于深度学习的人脸识别和表情识别工具包,由美国卡内基梅隆大学(CMU)的研究团队开发。
作为一个开源的Python 库,OpenFace 旨在为开发者提供强大的人脸分析功能,以满足各种应用需求。
2.OpenFace 的主要功能OpenFace 主要功能包括人脸检测、人脸关键点定位、人脸属性识别(如年龄、性别、表情等)、人脸识别等。
通过这些功能,开发者可以轻松实现人脸相关的应用,如表情分析、人脸识别门禁系统等。
3.OpenFace 的使用步骤(1)安装OpenFace在使用OpenFace 之前,需要先安装该库。
可以通过以下命令进行安装:```pip install openface-py```(2)导入OpenFace 库在Python 代码中,需要先导入OpenFace 库:```pythonimport openface```(3)使用OpenFace 功能OpenFace 提供了许多实用的功能,下面以人脸检测和人脸关键点定位为例,展示如何使用这些功能:```python# 人脸检测detector = openface.TinyFaceDetector()image = openface.Image.fromFile("example.jpg")faces = detector.detect(image)for face in faces:print("检测到人脸:")print(face)# 人脸关键点定位keypoints = detector.getKeypoints(image)for keypoint in keypoints:print(keypoint)```4.OpenFace 的应用案例OpenFace 的应用案例非常丰富,包括但不限于表情分析、人脸识别门禁系统、人脸生成、人脸跟踪等。
开源SIP服务器OpenSIPS应用介绍1、引入应用中。
SIP协议的标准化,同时也造就了一大批优秀的开源软件产品,包括Asterisk、SipXecs、FreeSWITCH、OpenSIPS等SIP服务端软件,也包括X-lite、LinPhone、eyeBeam等SIP客户端软件。
本文介绍了国外成熟的SIPServer开源项目OpenSIPS,并结合其它通信方面的开源项目对其应用情况进行了一些介绍。
2、OpenSIPS介绍外,还提供了一些应用级的功能。
OpenSIPS的结构非常灵活,其核心路由功能完全通过等多种应用。
同时OpenSIPS性能上是目前最快的SIP服务器之一,可用于电信级产品构建。
2.1、功能特点凭借其可扩展、模块化的系统架构,OpenSIPS提供了一个高度灵活的、用户可配置的路由引擎,可以为voice、video、IM和presence等服务提供强大高效的路由、鉴权、应用在自己的网络体系中。
其主要功能如下:SIP注册服务器/代理服务器(lcr、dynamic routing、dialplan)/重定向服务器SIP presence agentSIP B2BUASIP IM ServerSIP to SMS/XMPP网关SIP to XMPP网关SIP 负载均衡SIP NAT traversal2.2、基本应用配置OpenSIPS不但提供了丰富的功能,还具有操作简单的特点。
所有OpenSIPS的应用功能都可以通过一个配置文件opensips.cfg来实现的。
该配置文件主要分为三个部分,第一部分主要是全局变量的设置;第二部分主要是加载模块,并设置模块的相应参数;第三部分主要是路由的策略和功能应用。
为了更清晰的呈现opensips.cfg配置文件带来的强大功能,接下来对这三个部分以简单的示例进一步说明。
第一部分全局变量的设置,通过一条语句就能指定用于侦听接收sip消息的端口和传输层协议。
渗透测试中超好用的5款漏洞扫描工具!渗透测试中超好⽤的5款漏洞扫描⽤具!漏洞扫描犹如体检⽤般,通过漏洞扫描⽤具,我们可以定期对计算机系统、软件、应⽤程序或⽤络接⽤进⽤扫描,从⽤发现信息安全存在的潜在威胁,及时采取防御措施、规避风险。
因此,漏洞扫描⽤具便成为安全⽤作⽤员必不可少的⽤具之⽤,那么好⽤的漏洞扫描⽤具有哪些?本篇⽤章为⽤家介绍渗透测试中超好⽤的5款漏洞扫描⽤具,快来学习⽤下吧。
1、OpenVAS漏洞扫描⽤具OpenVAS漏洞扫描器是⽤种漏洞分析⽤具,由于其全⽤的特性,IT部门可以使⽤它来扫描服务器和⽤络设备。
这些扫描器将通过扫描现有设施中的开放端⽤、错误配置和漏洞来查找IP地址并检查任何开放服务。
扫描完成后,将⽤动⽤成报告并以电⽤邮件形式发送,以供进⽤步研究和更正。
OpenVAS也可以从外部服务器进⽤操作,从⽤客的⽤度出发,从⽤确定暴露的端⽤或服务并及时进⽤处理。
如果您已经拥有⽤个内部事件响应或检测系统,则OpenVAS将帮助您使⽤⽤络渗透测试⽤具和整个警报来改进⽤络监控。
2、Nessus漏洞扫描⽤具Tenable的NessusProfessional是⽤款⽤向安全专业⽤⽤的⽤具,负责修补程序、软件问题、恶意软件和⽤告软件删除⽤具,以及各种操作系统和应⽤程序的错误配置。
Nessus提供了⽤个主动的安全程序,在⽤客利⽤漏洞⽤侵⽤络之前及时识别漏洞,同时还处理远程代码执⽤漏洞。
它关⽤⽤多数⽤络设备,包含虚拟、物理和云基础架构。
Tenable 还被认为是Gartner PeerInsights在2003年3⽤之前进⽤危险性评估的⽤选⽤案。
3、Nexpose communityNexpose community是由Rapid7开发的漏洞扫描⽤具,它是涵盖了⽤多数⽤络检查的开源解决⽤案。
这个解决⽤案的多功能性是IT管理员的⽤个优势,它可以被整合到⽤个Metaspoit框架中,能够在任何新设备访问⽤络时检测和扫描设备。
opensees弧长法【实用版】目录1.OpenSees 简介2.弧长法的定义和原理3.OpenSees 弧长法的应用4.OpenSees 弧长法的优势和局限性正文1.OpenSees 简介OpenSees 是一款开源的、跨平台的地震工程模拟软件,广泛应用于结构动力学、地震工程等领域。
它提供了丰富的工具和方法,帮助工程师和研究人员分析和设计地震反应结构。
在 OpenSees 中,弧长法是一种常用的地震反应分析方法。
2.弧长法的定义和原理弧长法,又称为路径积分法,是一种基于位移的数值积分方法。
它的基本思想是将结构的位移历程分解为无数小的位移增量,然后对每个增量进行积分,得到结构的累积位移。
弧长法的核心公式为:Δx = ∫(F(x,t)dt)其中,Δx 表示位移增量,F(x,t) 表示在某一时刻 t 的位移,积分是对所有时刻的位移进行累加。
这种方法被称为弧长法,是因为在数学上,位移 - 时间曲线在速度 - 时间曲线之下所围成的面积就像一个弧长。
3.OpenSees 弧长法的应用在 OpenSees 中,弧长法被广泛应用于以下三个方面:(1)静态分析:静态分析是指在地震作用下,结构在静止状态下的位移反应。
通过弧长法,可以计算出结构的静态位移、内力等。
(2)动态分析:动态分析是指在地震作用下,结构在运动状态下的位移反应。
由于弧长法可以计算出任意时刻的位移,因此可以应用于动态分析。
(3)弹塑性分析:弧长法可以处理弹塑性材料,因此可以用于弹塑性分析。
4.OpenSees 弧长法的优势和局限性(1)优势:弧长法具有较高的数值稳定性,适用于各种类型的结构和地震动作用。
此外,弧长法的计算精度较高,可以得到较为准确的结果。
(2)局限性:弧长法的计算时间较长,尤其是在处理大型结构时,计算量较大,计算时间较长。
Linux系统安全漏洞管理工具介绍使用OpenVAS和Nessus在当前信息技术高速发展的时代,网络安全的重要性变得日益突出。
作为操作系统中最常用的开源系统,Linux的安全漏洞管理及评估工具也逐渐成为IT行业关注的焦点。
本文将介绍两款有代表性的Linux系统安全漏洞管理工具:OpenVAS和Nessus。
一、OpenVASOpenVAS(Open Vulnerability Assessment System)是一个广泛使用的开源系统安全漏洞扫描器。
它由一系列服务器和客户端组成,旨在帮助用户发现和评估计算机系统中存在的漏洞。
1. 特点OpenVAS具有以下特点:(1)开源:OpenVAS作为一个开源工具,用户可以免费获取源代码并进行自定义修改,这使得它被广泛认可和使用。
(2)易用性:OpenVAS提供了友好的用户界面,使得用户能够通过简单的操作完成扫描任务,并快速获取扫描结果。
(3)全面性:OpenVAS能够发现系统中的多种类型漏洞,包括远程漏洞、本地漏洞、拒绝服务漏洞等。
(4)实时更新:OpenVAS的漏洞库会根据最新的漏洞信息进行实时更新,以保证扫描结果的准确性和全面性。
2. 使用方法OpenVAS的使用方法如下:(1)安装:用户需要先在Linux系统上安装OpenVAS,其安装过程可以通过阅读官方文档或在线教程获得。
(2)配置:安装完成后,用户需要对OpenVAS进行一些基础配置,例如设置用户权限、创建扫描任务等。
(3)运行扫描:在完成配置后,用户可以选择性地运行扫描任务,并在任务完成后查看和导出扫描结果。
二、NessusNessus是一款即插即用的漏洞扫描工具,具有强大的功能和广泛的应用范围。
它可以帮助用户发现并评估计算机系统和网络中的漏洞,以及提供解决方案。
1. 特点Nessus具有以下特点:(1)全面性:Nessus能够全面扫描目标系统,包括端口扫描、配置审计、弱密码检测等,从而确保系统的安全性。
解析OpenSSL程序概念及震惊业界的“⼼脏出⾎”漏洞OpenSSL的各种概念解析: 公钥/私钥/签名/验证签名/加密/解密/⾮对称加密 我们⼀般的加密是⽤⼀个密码加密⽂件,然后解密也⽤同样的密码.这很好理解,这个是对称加密.⽽有些加密时,加密⽤的⼀个密码,⽽解密⽤另外⼀组密码,这个叫⾮对称加密,意思就是加密解密的密码不⼀样.初次接触的⼈恐怕⽆论如何都理解不了.其实这是数学上的⼀个素数积求因⼦的原理的应⽤,如果你⼀定要搞懂,百度有⼤把⼤把的资料可以看,其结果就是⽤这⼀组密钥中的⼀个来加密数据,可以⽤另⼀个解开.是的没错,公钥和私钥都可以⽤来加密数据,相反⽤另⼀个解开,公钥加密数据,然后私钥解密的情况被称为加密解密,私钥加密数据,公钥解密⼀般被称为签名和验证签名. 因为公钥加密的数据只有它相对应的私钥可以解开,所以你可以把公钥给⼈和⼈,让他加密他想要传送给你的数据,这个数据只有到了有私钥的你这⾥,才可以解开成有⽤的数据,其他⼈就是得到了,也看懂内容.同理,如果你⽤你的私钥对数据进⾏签名,那这个数据就只有配对的公钥可以解开,有这个私钥的只有你,所以如果配对的公钥解开了数据,就说明这数据是你发的,相反,则不是.这个被称为签名. 实际应⽤中,⼀般都是和对⽅交换公钥,然后你要发给对⽅的数据,⽤他的公钥加密,他得到后⽤他的私钥解密,他要发给你的数据,⽤你的公钥加密,你得到后⽤你的私钥解密,这样最⼤程度保证了安全性. RSA/DSA/SHA/MD5 ⾮对称加密的算法有很多,⽐较著名的有RSA/DSA ,不同的是RSA可以⽤于加/解密,也可以⽤于签名验签,DSA则只能⽤于签名.⾄于SHA则是⼀种和md5相同的算法,它不是⽤于加密解密或者签名的,它被称为摘要算法.就是通过⼀种算法,依据数据内容⽣成⼀种固定长度的摘要,这串摘要值与原数据存在对应关系,就是原数据会⽣成这个摘要,但是,这个摘要是不能还原成原数据的,嗯....,正常情况下是这样的,这个算法起的作⽤就是,如果你把原数据修改⼀点点,那么⽣成的摘要都会不同,传输过程中把原数据给你再给你⼀个摘要,你把得到的原数据同样做⼀次摘要算法,与给你的摘要相⽐较就可以知道这个数据有没有在传输过程中被修改了. 实际应⽤过程中,因为需要加密的数据可能会很⼤,进⾏加密费时费⼒,所以⼀般都会把原数据先进⾏摘要,然后对这个摘要值进⾏加密,将原数据的明⽂和加密后的摘要值⼀起传给你.这样你解开加密后的摘要值,再和你得到的数据进⾏的摘要值对应⼀下就可以知道数据有没有被修改了,⽽且,因为私钥只有你有,只有你能解密摘要值,所以别⼈就算把原数据做了修改,然后⽣成⼀个假的摘要给你也是不⾏的,你这边⽤密钥也根本解不开. CA/PEM/DER/X509/PKCS ⼀般的公钥不会⽤明⽂传输给别⼈的,正常情况下都会⽣成⼀个⽂件,这个⽂件就是公钥⽂件,然后这个⽂件可以交给其他⼈⽤于加密,但是传输过程中如果有⼈恶意破坏,将你的公钥换成了他的公钥,然后得到公钥的⼀⽅加密数据,不是他就可以⽤他⾃⼰的密钥解密看到数据了吗,为了解决这个问题,需要⼀个公证⽅来做这个事,任何⼈都可以找它来确认公钥是谁发的.这就是CA,CA确认公钥的原理也很简单,它将它⾃⼰的公钥发布给所有⼈,然后⼀个想要发布⾃⼰公钥的⼈可以将⾃⼰的公钥和⼀些⾝份信息发给CA,CA⽤⾃⼰的密钥进⾏加密,这⾥也可以称为签名.然后这个包含了你的公钥和你的信息的⽂件就可以称为证书⽂件了.这样⼀来所有得到⼀些公钥⽂件的⼈,通过CA的公钥解密了⽂件,如果正常解密那么机密后⾥⾯的信息⼀定是真的,因为加密⽅只可能是CA,其他⼈没它的密钥啊.这样你解开公钥⽂件,看看⾥⾯的信息就知道这个是不是那个你需要⽤来加密的公钥了. 实际应⽤中,⼀般⼈都不会找CA去签名,因为那是收钱的,所以可以⾃⼰做⼀个⾃签名的证书⽂件,就是⾃⼰⽣成⼀对密钥,然后再⽤⾃⼰⽣成的另外⼀对密钥对这对密钥进⾏签名,这个只⽤于真正需要签名证书的⼈,普通的加密解密数据,直接⽤公钥和私钥来做就可以了. 密钥⽂件的格式⽤OpenSSL⽣成的就只有PEM和DER两种格式,PEM的是将密钥⽤base64编码表⽰出来的,直接打开你能看到⼀串的英⽂字母,DER格式是⼆进制的密钥⽂件,直接打开,你可以看到........你什么也看不懂!.X509是通⽤的证书⽂件格式定义.pkcs的⼀系列标准是指定的存放密钥的⽂件标准,你只要知道PEM DER X509 PKCS这⼏种格式是可以互相转化的.⼼脏出⾎的OpenSSL去年,OpenSSL爆出史上最严重的安全漏洞,此漏洞在⿊客社区中被命名为“⼼脏出⾎”漏洞。
OpenSSL有两种运行模式:交互模式和批处理模式。
直接输入openssl回车进入交互模式,输入带命令选项的openssl进入批处理模式。
(1) 配置文档OpenSSL的默认配置文档位置不是很固定,能够用openssl ca命令得知。
您也能够指定自己的配置文档。
当前只有三个OpenSSL命令会使用这个配置文档:ca, req, x509。
有望未来版本会有更多命令使用配置文档。
(2)消息摘要算法支持的算法包括:MD2, MD4, MD5, MDC2, SHA1(有时候叫做DSS1), RIPEMD-160。
SHA1和RIPEMD-160产生160位哈西值,其他的产生128位。
除非出于兼容性考虑,否则推荐使用SHA1或RIPEMD-160。
除了RIPEMD-160需要用rmd160命令外,其他的算法都可用dgst命令来执行。
OpenSSL对于SHA1的处理有点奇怪,有时候必须把他称作DSS1来引用。
消息摘要算法除了可计算哈西值,还可用于签名和验证签名。
签名的时候,对于DSA生成的私匙必须要和DSS1(即SHA1)搭配。
而对于RSA生成的私匙,任何消息摘要算法都可使用。
############################################################## 消息摘要算法应用例子# 用SHA1算法计算文档file.txt的哈西值,输出到stdout$ openssl dgst -sha1 file.txt# 用SHA1算法计算文档file.txt的哈西值,输出到文档digest.txt$ openssl sha1 -out digest.txt file.txt# 用DSS1(SHA1)算法为文档file.txt签名,输出到文档dsasign.bin# 签名的private key必须为DSA算法产生的,保存在文档dsakey.pem中$ openssl dgst -dss1 -sign dsakey.pem -out dsasign.bin file.txt# 用dss1算法验证file.txt的数字签名dsasign.bin,# 验证的private key为DSA算法产生的文档dsakey.pem$ openssl dgst -dss1 -prverify dsakey.pem -signature dsasign.bin file.txt# 用sha1算法为文档file.txt签名,输出到文档rsasign.bin# 签名的private key为RSA算法产生的文档rsaprivate.pem$ openssl sha1 -sign rsaprivate.pem -out rsasign.bin file.txt# 用sha1算法验证file.txt的数字签名rsasign.bin,# 验证的public key为RSA算法生成的rsapublic.pem$ openssl sha1 -verify rsapublic.pem -signature rsasign.bin file.txt(3) 对称密码OpenSSL支持的对称密码包括Blowfish, CAST5, DES, 3DES(Triple DES), IDEA, RC2, RC4连同RC5。
OpenSSL 0.9.7还新增了AES的支持。
很多对称密码支持不同的模式,包括CBC, CFB, ECB连同OFB。
对于每一种密码,默认的模式总是CBC。
需要特别指出的是,尽量避免使用ECB 模式,要想安全地使用他难以置信地困难。
enc命令用来访问对称密码,此外还能够用密码的名字作为命令来访问。
除了加解密,base64可作为命令或enc命令选项对数据进行base64编码/解码。
当您指定口令后,命令行工具会把口令和一个8字节的salt(随机生成的)进行组合,然后计算MD5 hash值。
这个hash值被切分成两部分:加密钥匙(key)和初始化向量(initializationvector)。
当然加密钥匙和初始化向量也能够手工指定,但是不推荐那样,因为容易出错。
############################################################## 对称加密应用例子# 用DES3算法的CBC模式加密文档plaintext.doc,# 加密结果输出到文档ciphertext.bin$ openssl enc -des3 -salt -in plaintext.doc -out ciphertext.bin# 用DES3算法的OFB模式解密文档ciphertext.bin,# 提供的口令为trousers,输出到文档plaintext.doc# 注意:因为模式不同,该命令不能对以上的文档进行解密$ openssl enc -des-ede3-ofb -d -in ciphertext.bin -out plaintext.doc -pass pass:trousers# 用Blowfish的CFB模式加密plaintext.doc,口令从环境变量PASSWORD中取# 输出到文档ciphertext.bin$ openssl bf-cfb -salt -in plaintext.doc -out ciphertext.bin -pass env:PASSWORD # 给文档ciphertext.bin用base64编码,输出到文档base64.txt$ openssl base64 -in ciphertext.bin -out base64.txt# 用RC5算法的CBC模式加密文档plaintext.doc# 输出到文档ciphertext.bin,# salt、key和初始化向量(iv)在命令行指定$ openssl rc5 -in plaintext.doc -out ciphertext.bin -S C62CB1D49F158ADC -iv E9EDACA1BD7090C6 -K89D4B1678D604FAA3DBFFD030A314B29(4)公匙密码4.1 Diffie-Hellman被用来做钥匙协商(key agreement),具备保密(secrecy)功能,但是不具备加密(encryption)或认证(authentication)功能,因此在进行协商前需用别的方式对另一方进行认证。
首先,Diffie-Hellman创建一套双方都认可的参数集,包括一个随机的素数和生成因子(generator value,通常是2或5)。
基于这个参数集,双方都计算出一个公钥匙和私钥匙,公钥匙交给对方,对方的公钥匙和自己的私钥匙用来计算共享的钥匙。
OpenSSL 0.9.5 提供了dhparam命令用来生成参数集,但是生成公钥匙和私钥匙的命令dh 和gendh已不推荐使用。
未来版本可能会加上这个功能。
############################################################## Diffie-Hellman应用例子# 使用生成因子2和随机的1024-bit的素数产生D0ffie-Hellman参数# 输出保存到文档dhparam.pem$ openssl dhparam -out dhparam.pem -2 1024# 从dhparam.pem中读取Diffie-Hell参数,以C代码的形式# 输出到stdout$ openssl dhparam -in dhparam.pem -noout -C4.2 数字签名算法(Digital Signature Algorithm, DSA)主要用来做认证,不能用来加密(encryption)或保密(secrecy),因此他通常和Diffie-Hellman配合使用。
在进行钥匙协商前先用DSA进行认证(authentication)。
有三个命令可用来完成DSA算法提供的功能。
dsaparam命令生成和检查DSA参数,还可生成DSA私钥匙。
gendsa命令用来为一套DSA参数生成私钥匙,这把私钥匙可明文保存,也可指定加密选项加密保存。
可采用DES,3DES,或IDEA进行加密。
dsa命令用来从DSA的私钥匙中生成公钥匙,还能够为私钥匙加解密,或改变私钥匙加密的口令。
############################################################## DSA应用例子# 生成1024位DSA参数集,并输出到文档dsaparam.pem$ openssl dsaparam -out dsaparam.pem 1024# 使用参数文档dsaparam.pem生成DSA私钥匙,# 采用3DES加密后输出到文档dsaprivatekey.pem$ openssl gendsa -out dsaprivatekey.pem -des3 dsaparam.pem# 使用私钥匙dsaprivatekey.pem生成公钥匙,# 输出到dsapublickey.pem$ openssl dsa -in dsaprivatekey.pem -pubout -out dsapublickey.pem# 从dsaprivatekey.pem中读取私钥匙,解密并输入新口令进行加密,# 然后写回文档dsaprivatekey.pem$ openssl dsa -in dsaprivatekey.pem -out dsaprivatekey.pem -des3 -passin4.3 RSARSA得名于他的三位创建者:Ron Rivest, Adi Shamir, Leonard Adleman。
现在之所以如此流行,是因为他集保密、认证、加密的功能于一体。
不像Diffie-Hellman和DSA,RSA算法无需生成参数文档,这在很大程度上简化了操作。
有三个命令可用来完成RSA提供的功能。
genrsa命令生成新的RSA私匙,推荐的私匙长度为1024位,不建议低于该值或高于2048位。
缺省情况下私匙不被加密,但是可用DES、3DES或IDEA加密。
rsa命令可用来添加、修改、删除私匙的加密保护,也可用来从私匙中生成RSA公匙,或用来显示私匙或公匙信息。
rsautl命令提供RSA加密和签名功能。
但是不推荐用他来加密大块数据,或给大块数据签名,因为这种算法的速度较来慢。
通常用他给对称密匙加密,然后通过enc命令用对称密匙对大块数据加密。
############################################################## RSA应用例子# 产生1024位RSA私匙,用3DES加密他,口令为trousers,# 输出到文档rsaprivatekey.pem$ openssl genrsa -out rsaprivatekey.pem -passout pass:trousers -des3 1024# 从文档rsaprivatekey.pem读取私匙,用口令trousers解密,# 生成的公钥匙输出到文档rsapublickey.pem$ openssl rsa -in rsaprivatekey.pem -passin pass:trousers -pubout -outrsapubckey.pem# 用公钥匙rsapublickey.pem加密文档plain.txt,# 输出到文档cipher.txt$ openssl rsautl -encrypt -pubin -inkey rsapublickey.pem -in plain.txt -out cipher.txt# 使用私钥匙rsaprivatekey.pem解密密文cipher.txt,# 输出到文档plain.txt$ openssl rsautl -decrypt -inkey rsaprivatekey.pem -in cipher.txt -out plain.txt # 用私钥匙rsaprivatekey.pem给文档plain.txt签名,# 输出到文档signature.bin$ openssl rsautl -sign -inkey rsaprivatekey.pem -in plain.txt -out signature.bin # 用公钥匙rsapublickey.pem验证签名signature.bin,# 输出到文档plain.txt$ openssl rsautl -verify -pubin -inkey rsapublickey.pem -in signature.bin -out plain(5) S/MIME[Secure Multipurpose Internet Mail Exchange]S/MIME应用于安全邮件交换,可用来认证和加密,是PGP的竞争对手。