搜档网
当前位置:搜档网 › OPENSSL编程实践——实现文件加密和数字签名

OPENSSL编程实践——实现文件加密和数字签名

OPENSSL编程实践——实现文件加密和数字签名
OPENSSL编程实践——实现文件加密和数字签名

OpenSSL编程实例

客户端程序 // OpenSSLClient.cpp #include #include using namespace std; #pragma comment (lib, "Ws2_32.lib") #include "openssl/ssl.h" #pragma comment(lib, "ssleay32.lib") #pragma comment(lib, "libeay32.lib") #define SERVICE_PORT 10000 const int nBufSize = 512; // 初始化2.2版本Winsock int InitWinsock(){ WSADATA wsaData = {0}; WORD wVer = MAKEWORD(2,2); int nRet = WSAStartup(wVer, &wsaData); if(nRet != 0){ cout<<"Winsock初始化失败,错误代码是"<

发送数字签名和加密邮件

发送数字签名和加密邮件 一、实验目的 ●了解什么是数字签名与加密 ●掌握用Outlook Express发送签名邮件的方法 ●掌握用Outlook Express 发送加密邮件的方法。 二、实验内容和步骤 ●1、设置Outlook Express收发QQ邮件 ●在QQ邮箱设置中选择“账户”,在 “POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务”中开启 “pop3/smtp服务”; ●按 https://www.sodocs.net/doc/f911300422.html,/cgi-bin/help?subtype=1&&id=28 &&no=371进行配置。 ●2、申请免费数字证书(见下图) ●3、通过Outlook Express发送签名邮件 ●4、通过Outlook Express发送加密邮件 ●完成实验报告 三、实验结果 1、收发双方申请数字证书 数字证书由独立的授权机构发放,通过用户的申请和机构的发放,验证用户身份的合法性: 第一步,安装证书颁发机构的CA根证书;

第二步,申请邮件安全证书,填写邮件地址和必要的用户信息;

第三步,证书服务器发放机构审核颁发证书; 第四步,客户端下载安装证书。之后点击IE的“工具→选项”命令中的“内容→证书”按钮,可以调出个人所安装证书及发行者核实一下.

2、发送签名加密的邮件 1.发送具有自己数字签名的邮件前先设置一下,选中邮箱,右键单击“属性”命令,在弹出的窗口中切换到“安全”选项夹,点击右侧“选择”按钮,挑选与该邮箱相匹配的证书。

2.一定要为邮箱匹配数字标识(证书),否则不能发送具有数字签名的验 证邮件。 发送加密的邮件时,需要知道收件人的公钥,有两种方法获得。一个是通过发证机构的证书服务器的平台,通过选择收件人来搜索该账户数字证书。 也可以导出证书到收件的客户机导入后使用

实验2 数据加密与数字签名

实验2 数据加密与与数字签名 一、实验目的与要求 体验各种密码体制的数据安全操作与数据安全软件以及了解我国的电子商务法律,并思考应如何做好电子商务的安全防范。 二、实验内容 1.运行C语言编程的加密程序。 2.PGP软件的下载与使用(对邮件以及文件加密)或Openssl软件。 3.非密码的安全技术。 4.各国发展电子商务的政策和制定的电子商务法律。 5.我国第一部电子签名法的内容与实施 三、实验软件 Windows XP ,IE 7 ,PGP软件,Openssl软件 四、实验步骤 (一)数据安全软件的使用 1.下载PGP与安装PGP(见附录) 2.利用PGP对邮件或磁盘文件进行加密 3.或者利用Openssl做如下操作:(用对称加密法对文件进行加密与解密) (1)生成源文件。用记事本创建一个文本文件,文件名为学号 (026h231f.txt),内容为学生的名字与学号,保存在c:\openssl\out32dll 的文件夹下。 (2)对源文件进行对称加密。输入命令:“openssl enc-des3-in 026h231f.txt-out out026h231f.des”回车后,在加密过程中系统会提示输入保护密码,输入密码后,再次确认(输入密码时屏幕无任何显示),系统在c:\openssl\out32dll目录下自动生成一个des3算法加密后的 out026h231f.des文件。 (3)查看加密的文件。输入命令:“type out026h23lf.des”,查看加密后的out026h231f.des文件的内容。

(4)对加密文件进行解密。输入命令“openssl enc-des3-d-in out026h231f.des -out new026h231f.txt”,并根据提示输入解密密码,对“outmane.txt”文件内容进行解码。 (5)比较解密后文件和源文件,输入命令“type new026h23lf.txt”,查看解密后的文件内容,判断是否与源文件026h23lf.txt的内容一致。(二)验证恺撒密码 1、请输入如下程序: #include main() { char c; while((c=getchar())!=’\n’) { if((c>=’a’&&c<=’z’)||(c>=’A’&&c<=’Z’)) { c=c+3; if(c>’z’&&c<=’z’+3||c>’Z’&&c<’Z’+3) c=c-26; } printf(“%c”,c);}} 2、验证是否是素数?的C语言程序 #include Main() { Int m,I,k; Scanf(“%d,&m”); K=aqrt(m); For(i=2;i<=k;i++) If(m%i==0)break;

使用OpenSSL建立根CA及自签名证书制作过程

使用OpenSSL建立根CA及自签名证书制作过程 2009-12-24 11:35:32| 分类:openssl |字号订阅 Openssl版本:0.9.8 版本,可从https://www.sodocs.net/doc/f911300422.html,处下载。 1.先建立如下目录结构: $home/testca # testca 是待建CA的主目录 ├─newcerts/ # newcerts子目录将存放CA签发过的数组证书(备份目录) ├─private/ # private目录用来存放CA私钥 └─conf/ # conf目录用来存放简化openssl命令行参数用的配置文件 此外使用命令 echo "01" > serial touch index.txt 在ca根目录下创建文件serial (用来存放下一个证书的序列号) 和indext.txt (证书信息数据库文件)。 1.生成CA的私钥和自签名证书 (根证书) 创建配置文件:vi "$HOME/testca/conf/gentestca.conf" 文件内容如下: #################################### [ req ] default_keyfile = /home/cx/testCA/private/cakey.pem default_md = md5 prompt = no

distinguished_name = ca_distinguished_name x509_extensions = ca_extensions [ ca_distinguished_name ] organizationName = ss organizationalUnitName = sstc commonName = sstcCA emailAddress = GChen2@https://www.sodocs.net/doc/f911300422.html, #自己的邮件地址 [ ca_extensions ] basicConstraints = CA:true ######################################## 然后执行命令如下: cd "$HOME/testca" openssl req -x509 -newkey rsa:2048 -out cacert.pem -outform PEM -days 2190 -config "$HOME/testca/conf/gentestca.conf" 执行过程中需要输入CA私钥的保护密码,假设我们输入密码: 888888 可以用如下命令查看一下CA自己证书的内容 openssl x509 -in cacert.pem -text –noout 创建一个配置文件,以便后续CA日常操作中使用 vi "$HOME/testca/conf/testca.conf"

发送数字签名和加密邮件 实验报告

一、实验目的 ●了解什么是数字签名与加密 ●掌握用Outlook Express发送签名邮件的方法 ●掌握用Outlook Express 发送加密邮件的方法。 二、实验环境 ●实验室所有机器安装了Windows 操作系统,并附带Outlook Express。 三、实验内容和步骤 1、设置Outlook Express收发QQ邮件 (1)打开OUTLOOK EXSPRESS方法为开始/所有程序/OUTLOOK EXPRESS; (2)申请帐号方法:OUTLOOK EXSPRESS的工具/帐号/添加/邮件/输入显示名/输入你的QQ邮箱地址/设置电子邮件服务器名 https://www.sodocs.net/doc/f911300422.html, https://www.sodocs.net/doc/f911300422.html,/输入电子邮件的帐号名称和密码/下一步/完成 2、申请免费数字证书

查看证书: 3、在Outlook Express 设置数字证书 (1)在Outlook Express 中,单击“工具”菜单中的“帐号”(2)选取“邮件”选项卡中用于发送安全邮件的邮件帐号,然后单击“属性”。

(3)选取安全选项卡中的签名标识复选框,然后单击选择按健 (4)在弹出的“选择默认帐户数字标识”窗口中,选择要使用的数字证书,就选择你刚才申请的个人电子邮件保护证书 (5)点击“确定”按钮,完成证书设置。至此,你可以发送带数字签名的邮件。 4、发送签名邮件 发送邮件时从“工具”菜单中选择“签名”,收件人地址栏后面出现“签名”标志。

本次实验我给邮箱为16018733139@https://www.sodocs.net/doc/f911300422.html, 发送一个签名邮件。 发送成功: 5、发送加密邮件 发送加密邮件前必须正确安装了对方的“电子邮件保护证书”,只要请对方用他的“电子邮件保护证书”给你发送一个签名邮件,证书会自动安装,并与对方Email地址绑定,否则就要手工安装对方“电子邮件保护证书”。 (1)从Outlook Express“工具”菜单中选择“选项”。 (2)鼠标单击“数字标识”按钮。

在企业局域网中实现数据加密和数字签名

90 2006.1 0 引言 在当今信息社会,计算机网络得到了突飞猛进的发展。计算机网络日益成为工业、农业和国防等领域的重要信息交换手段,并逐渐渗透到社会的各个领域。企业实现无纸化办公,提高工作效率已是大势所趋。随着无纸化办公的发展,计算机网络的安全越来越受到重视,防止信息被未经授权泄露、篡改和破坏等都是亟待解决的问题。在Internet上,数字签名作为一项重要的安全技术,在保证数据的完整性、私有性和不可抵赖性方面起着极为重要的作用。数字签名在Internet上的应用需要专门的数字证书颁发认证机构(CA),统一管理数字签名的应用和校验。但是,由于部分企业的信息的特殊性和重要性不能在互联网上传送,因此企业内部局域网不能与Internet连接。基于此数字签名在局域网中的使用受到限制。本文利用密码学的知识,建立了企业内部局域网的文件加密和数字签名系统,成功地实现了企业内部局域网中的数据安全传送。 柳州铁路机车车辆工业贸易总公司下属车桥公司于2005年组建企业局域网,并且与总公司内部局域网连接。通过网络的连接基本无虚再通过人工传递书面文件或纸张资料,解决了总公司与车桥公司两个上下级公司虽处于两个不同地域而又需要频繁交换文件资料或其他信息的问题。同时,增强了企业信息传递、发布的实时性。为保证例如公司财务报表、销售与生产计划、员工考评信息等内部消息传送的真实性与安全性。本文以此为背景尝试了基于以下技术以及主要过程的解决方案。 1 公钥加密技术原理 数据加密技术就是对信息进行重新编码,从而隐藏信息内容,使非法用户无法获取信息的真实内容的一种技术手段。目前,数据加密主要使用的有对称密钥加密和公钥加密(也称非对称密钥加密)两种技术。对称密钥加密技术中,加密和解密使用相同的密钥,最常用的是 DES(Data EncryptionStandard)算法,DES算法是公开的。DES内部的复杂结构对信息安全起了重要作用,使其保密性仅取决于对密钥的保密程度。 公钥加密技术中,加密和解密使用不同的密钥,每个用户有一对密钥:公钥KU和私钥KR,KU可以公开,KR由用户自已保存。非对称密钥加密技术常采用RSA算法。RSA算法的特点有以下四点: (1)由用户A的公钥KUa加密的信息只能通过A的私钥KRa来解密,并且用A的私钥KRa加密的信息只能用公钥KUa解密; (2)加密秘钥不能同时用于解密; (3)在计算机上很容易产生成对的公钥和私钥;(4)若攻击者仅仅已知KU(或KR),则在计算上推导出相应的KR(或KU)是不可行的。 2 数字签名技术原理 数字签名技术是在传输的数据信息里附加一些特定的数据或对数据信息作密码变换,这种附加数据或密码变换使接收方能确认信息的真正来源和完整性,并且发送方事后不能 在企业局域网中实现 数据加密和数字签名 摘要:本文介绍了网络安全中的公钥加密和数字签名技术的基本原理。详细阐述了在企业内部局域网中实现数据加密和数字签名系统的方法以及系统的管理和实际应用,并利用 Microsoft公司提供的加密应用程序接口CryPto API编制了客户端软件。 关键词:公钥加密;数字签名;局域网 邓珂 桂林电子工业学院计算机系 广西 541004 作者简介:邓珂(1980-) ,男,研究方向:计算机网络技术及应用。

利用openSSL实现SSl双向认证学习笔记

SSl双向认证学习笔记 2010-09-02 13:16:39| 分类:ssl | 标签:|字号大中小订阅 url]https://www.sodocs.net/doc/f911300422.html,/sunyujia/archive/2008/10/03/3014667.aspx[/url] [url]https://www.sodocs.net/doc/f911300422.html,/nataka/archive/2005/09/03/470539.aspx[/url] [url]https://www.sodocs.net/doc/f911300422.html,/thread-743287-1-1.html[/url] 第一节基础知识 最近要做一个SSL的应用,先后了解了两个命令,一个是keytool,一个是openssl。keytool是JDK得集成环境 。只要安装了JDK,基本上都会有(^_^,除非你安装太老的!),我用的1.5。在安装openssl的时候,花了半天时间 。 用SSL进行双向身份验证意思就是在客户机连接服务器时,链接双方都要对彼此的数字证书进行验证,保证这 是经过授权的才能够连接(我们链接一般的SSL时采用的是单向验证,客户机只验证服务器的证书,服务器不验证客户 机的证书。而连接网上银行时使用的U盾就是用来存储进行双向验证所需要的客户端证书的)。 JDK工具KEYTOOL -genkey 在用户主目录中创建一个默认文件".keystore",还会产生一个mykey的别名,mykey中包含用户的公钥 、私钥和证书 -alias 产生别名 -keystore 指定密钥库的名称(产生的各类信息将不在.keystore文件中 -keyalg 指定密钥的算法 -validity 指定创建的证书有效期多少天 -keysize 指定密钥长度 -storepass 指定密钥库的密码 -keypass 指定别名条目的密码 -dname 指定证书拥有者信息例如:"CN=firstName,OU=org,O=bj,L=bj,ST=gd,C=cn" -list 显示密钥库中的证书信息keytool -list -v -keystore 别名-storepass .... -v 显示密钥库中的证书详细信息 -export 将别名指定的证书导出到文件keytool -export -alias 别名-file 文件名.crt -file 参数指定导出到文件的文件名 -delete 删除密钥库中某条目keytool -delete -alias 别名-keystore sage -keypasswd 修改密钥库中指定条目口令keytool -keypasswd -alias 别名-keypass .... -new .... -storepass ... -keystore 别名 -import 将已签名数字证书导入密钥库keytool -import -alias 别名-keystore 证书名-file 文件名 (可以加.crt 后缀) 命令: 生成证书 keytool -genkey -keystore 文件名(可包含路径) -keyalg rsa -alias 别名-validity 有效期 查看证书 keytool -list -v -keystore 路径 把证书导出到文件 keytool -export -alias 别名-keystore 证书名-rfc -file 文件名(可包含路径) 修改密码 keytool -keypasswd -alias 别名-keypass 旧密码-new 新密码 导出证书到新的TrustStore keytool -import -alias 别名-file 文件名-keystore truststore 此处省略3000字,待补^_^

网络安全数字签名

滨江学院 课程设计 任 务 书 学年学期2011-2012学年第二学期课程名称计算机网络课程设计 院系计算机系 专业 指导教师朱节中 二O一二年六月七日

数字签名技术是认证的主要手段之一。也是现代密码学的重要研究内容。本文具体阐述了数字签名的基本概念,介绍了数字签名的原理,分析了其评价标准,探讨了其未来发展方向,指出了其地位和前景。 关键词: 数字签名信息安全密码学网络安全 RSA 数字签名与加密研究 摘要:随着网络的迅速发展,信息安全越来越受到人们注意,由之而产生的签密技术引起了很多人的关注。文中首先简单的介绍了一下密码学的基本概念和原理。然后介绍了数字签名的产生、分类和功能,接着介绍了基于RSA和椭圆曲线的数字签名算法,其中具体讲了一下椭圆曲线的原理。再者阐述了椭圆曲线密码体制,根据已有的MV加密算法提出一种改进的MV加密算法。最后总结有关椭圆曲线密码算法,对以后的工作研究进行展望。 关键词:信息安全;数字签名;RSA;椭圆曲线;加密算法 Digital Signatures And Encryption Research Abstract: With the rapid development of network, people pay more and more attention to information security, follow the result signcryption technique has attracted much attention. The paper first introduces a simple look at the basic concepts of cryptography and principles. Then it introduces the digital signature generation, classification and function, and then introduces Digital Signature Algorithm which bases on RSA and Elliptic Curve, in which it specifically talkes about the principle of elliptic curves. Also the paper describes elliptic curve cryptography, encryption algorithm based on the existing MV and an improved encryption algorithm. At last, it summarizes the Elliptic Curve Cryptography, and look forward to future research work. Keywords: information security; digital signature; RSA; elliptic curve; encryption algorithm 1引言 随着IT技术迅猛的发展,各个行业的信息化、网络化的增强,信息的安全性越来越得到人们的重视。一个完整的、先进的信息系统无不考虑到信息安全技术的应用。对网络数据传输过程中的安全问题,HDS公司首席安全官Arthur B.Edmonds曾给出了认证(Authentication)、授权(Authorization)、审核(Audit/Accounting)、一致性(Integrity)和秘密

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)和初始化向量(initialization

数据加密方案

数据加密方案

一、什么是数据加密 1、数据加密的定义 数据加密又称密码学,它是一门历史悠久的技术,指通过加密算法和加密密钥将明文转变为密文,而解密则是通过解密算法和解密密钥将密文恢复为明文。数据加密目前仍是计算机系统对信息进行保护的一种最可靠的办法。它利用密码技术对信息进行加密,实现信息隐蔽,从而起到保护信息的安全的作用。 2、加密方式分类 数据加密技术要求只有在指定的用户或网络下,才能解除密码而获得原来的数据,这就需要给数据发送方和接受方以一些特殊的信息用于加解密,这就是所谓的密钥。其密钥的值是从大量的随机数中选取的。按加密算法分为对称密钥和非对称密钥两种。 对称密钥:加密和解密时使用同一个密钥,即同一个算法。如DES和MIT的Kerberos算法。单密钥是最简单方式,通信双方必须交换彼此密钥,当需给对方发信息时,用自己的加密密钥进行加密,而在接收方收到数据后,用对方所给的密钥进行解密。当一个文本要加密传送时,该文本用密钥加密构成密文,密文在信道上传送,收到密文后用同一个密钥将密文解出来,形成普通文体供阅读。在对称密钥中,密钥的管理极为重要,一旦密钥丢失,密文将无密可保。这种

方式在与多方通信时因为需要保存很多密钥而变得很复杂,而且密钥本身的安全就是一个问题。 对称加密 对称密钥是最古老的,一般说“密电码”采用的就是对称密钥。由于对称密钥运算量小、速度快、安全强度高,因而如今仍广泛被采用。 DES是一种数据分组的加密算法,它将数据分成长度为64位的数据块,其中8位用作奇偶校验,剩余的56位作为密码的长度。第一步将原文进行置换,得到64位的杂乱无章的数据组;第二步将其分成均等两段;第三步用加密函数进行变换,并在给定的密钥参数条件下,进行多次迭代而得到加密密文。 非对称密钥:非对称密钥由于两个密钥(加密密钥和解密密钥)各不相同,因而可以将一个密钥公开,而将另一个密钥保密,同样可以起到加密的作用。

OpenSSL 命令常用证书操作

在OpenSSL开发包中,包含一个实用工具:openssl,比如我用MinGW GCC 编译OpenSSL 0.9.8k 后,openssl 就保存在out目录下。openssl 工具是完成密钥、证书操作和其它SSL 事务的入口环境,直接运行不带参数的openssl 命令后,可以得到一个shell 环境,在其中可以以交互的方式完成SSL 相关的安全事务。 不过有时,如果用一个带参数选项的openssl 命令完成操作,会更方便。下面是我使用openssl 做证书操作时,记录的常用命令用法。 1.生成密钥 生成RSA密钥,保存在file.key中,命令如下: 上面命令的含义是:产生RSA密钥,包括:私钥和公钥两部分,然后使用DES3算法,用用户输入的密码(passphrase)加密该密钥数据,保存在file.key中。 file.key默认以BASE64方式编码密钥数据,file.key的格式称为:PEM (Privacy Enhanced Mail)格式,在RFC 1421到RFC 1424中定义,PEM是早期用来进行安全电子邮件传输的标准,但现在广泛用在证书、证书请求、PKCS#7对象的存储上,所以证书文件也经常以.pem为扩展名。 2.不加密的密钥 如果在生成密钥时,使用了-des3等加密选项,则会生成被用户密码保护的加密密钥,以增强密钥数据的保密性(因为密钥文件中包含私钥部分)。但有时为了方便,需要不加密的明文密钥(这样安全性会降低),比如:使用

Apache的HTTPS服务,每次启动Apache服务时,都需要用户输入保护密钥的密码,感觉麻烦的话,可以使用明文密钥。 明文密钥可以使用不带-des3等加密选项的openssl命令生成,还可以使用以下命令将加密保护的密钥转换成明文密钥,当然转换过程需要用户输入原来的加密保护密码: 3.查看密钥 查看保存在file.key中的RSA密钥的细节,如果此文件是加密保护的,会提示用户输入加密此文件的密码,命令如下: 输出的内容均是RSA密钥数据的数学信息(模数、指数、质数等),从输出的结果中也可知file.key保存的RSA密钥数据包括:私钥和公钥两部分。 该命令也能查看其它工具生成的密钥,比如SSH,只要密钥文件符合openssl支持的格式。 4.生成证书请求 由file.key产生一个证书请求(Certificate Request),保证在file.csr 中,命令如下: 指定时,默认会访问Unix格式的默认路径:/usr/local/ssl/https://www.sodocs.net/doc/f911300422.html,f。 创建证书请求时,会要求用户输入一些身份信息,示例如下:

如何使用Office Outlook 2007收发数字签名和加密的邮件

如何使用Office Outlook 2007收发数字签名和加密的邮件 要实现电子邮件的安全收发,就得将收发邮件工具(如Office Outlook)与用于电子邮件安全的证书实施绑定,进而对邮件进行加密和数字签名。若要对邮件进行签名,则需要一个属于你自己的数字证书;若要对邮件进行加密,则需要拥有对方的数字证书。 1.申请、下载和安装数字证书 下面以中国数字认证网提供的免费证书为例,说明证书申请、下载和安装的步骤如下: 步骤1:启动浏览器→依次单击【工具】→【Internet选项】→在打开的【Internet选项】对话框中选择【安全】选项卡→单击【受信任的站点】→单击【站点】按钮,如图14-47所示。 步骤2:打开【受信任的站点】对话框,在【将该网站添加到可信区域】编辑框中输入中国数字认证网的地址“https://www.sodocs.net/doc/f911300422.html,”→单击【添加】按钮→单击【关闭】按钮, →系统返回【Internet选项】对话框,单击【受信任的站点】→单击【自定义级别】按钮,打开【安全设置-受信任的站点区域】对话框,将“对标记为可安全执行脚本的ActiveX控件执行脚本*”设置为“启用”→两次单击【确定】按钮,如图14-48所示。 图14-47 【Internet选项】对话框 图14-48 【受信任的站点】和【安全设置-受信任的站点区域】对话框 步骤3:重启浏览器,使以上配置生效→进入https://www.sodocs.net/doc/f911300422.html,主页→在“免费证书”栏目中点击【下载并安装根CA证书】(只有安装了根证书的计算机,才能完成网上申请的步骤和证书的正常使用),如图14-49所示。 步骤4:下载完成后,双击下载的根证书文件“CA365FreeRoot.cer”→弹出【打开文件-安全警告】对话框,单击【打开】按钮→在弹出的【证书】对话框中单击【安装证书】按钮,根据向导提示,完成安装操作,如图14-50所示。 图14-49 【免费证书】栏目图14-50 【打开文件-安全警告】对话框 步骤5:在中国数字认证网注册会员→用会员登录该网站→登录成功后,在“免费证书”栏

openssl安装及使用

Openssl安装及使用 一软件 Windows下需要用到的软件 1.ActivePerl 一个perl脚本解释器。其包含了包括有Perl for Win32、Perl for ISAPI、PerlScript、Perl Package Manager四套开发工具程序,可以让你编写出适用于unix,windows,linux系统的CGI程序来。安装的只是perl的一个解释程序啦,外观上也不会发生什么变化,你在windows的cmd界面里输入perl -v可查看你所安装的版本。 在你编译perl程序时会用到它。 2.C++编译器 编译器就是将“高级语言”翻译为“机器语言(低级语言)” 的程序。一个现代编译器的主要工作流程:源代码(source code) →预处理器(preprocessor) →编译器(compiler) →汇编程序(assembler) →目标代码(object code) →链接器(Linker) →可执行程序(executables)。c++编译器是一个与标准化C++高度兼容的编译环境。这点对于编译可移植的代码十分重要。编译器对不同的CPU会进行不同的优化。 3.OpenSSL OpenSSL是一个强大的安全套接字层密码库,Apache使用

它加密HTTPS,OpenSSH使用它加密SSH,它还是一个多用途的、跨平台的密码工具。 OpenSSL整个软件包大概可以分成三个主要的功能部分:密码算法库、SSL协议库以及应用程序。OpenSSL的目录结构自然也是围绕这三个功能部分进行规划的。作为一个基于密码学的安全开发包,OpenSSL提供的功能相当强大和全面,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。 4.MASM 8.0 MASM是微软公司开发的汇编开发环境,拥有可视化的开发界面,使开发人员不必再使用DOS环境进行汇编的开发,编译速度快,支持80x86汇编以及Win32Asm是Windows下开发汇编的利器。它与windows平台的磨合程度非常好,但是在其他平台上就有所限制,使用MASM的开发人员必须在windows下进行开发。8.0版本在编译OpenSSL的时候不容易出错。 用winrar解压缩MASMSetup.exe得到:setup.exe继续用winrar解压缩setup.exe 得到:vc_masm1.cab继续用winrar解压缩vc_masm1.cab得到:FL_ml_exe__..... (很长的文件名,省略),将这个文件重命名为ml.exe测试得到的ml.exe , 应该显示:Microsoft (R) Macro Assembler Version 8.00.50727.104将ml.exe 拷贝到工作目录,即可正常使用。 5.mspdb60.dll

linux下利用openssl来实现证书的颁发(详细步骤)

linux下利用openssl来实现证书的颁发(详细步骤) 1、首先需要安装openssl,一个开源的实现加解密和证书的专业系统。在centos下可以利用yum安装。 2、openssl的配置文件是https://www.sodocs.net/doc/f911300422.html,f,我们一般就是用默认配置就可以。如果证书有特殊要求的话,可以修改配置适应需求。这样必须把相关的文件放到配置文件指定的目录下面。 3、首先需要利用openssl生成根证书,以后的服务器端证书或者客户端证书都用他来签发,可以建立多个根证书,就像对应不同的公司一样 #生成根证书的私钥 openssl genrsa -out /home/lengshan/ca.key #利用私钥生成一个根证书的申请,一般证书的申请格式都是csr。所以私钥和csr一般需要保存好openssl req -new -key /home/lengshan/ca.key -out /home/lengshan/ca.csr #自签名的方式签发我们之前的申请的证书,生成的证书为ca.crt openssl x509 -req -days 3650 -in /home/lengshan/ca.csr -signkey /home/lengshan/ca.key -out /home/lengshan/ca.crt #为我们的证书建立第一个序列号,一般都是用4个字符,这个不影响之后的证书颁发等操作 echo FACE > /home/lengshan/serial #建立ca的证书库,不影响后面的操作,默认配置文件里也有存储的地方 touch /home/lengshan/index.txt #建立证书回收列表保存失效的证书

Linux怎么使用OpenSSL命令行

Linux怎么使用OpenSSL命令行 OpenSSL是一款命令行工具可以用来做检测,加密解密等等,尤其在Linux中很实用。那么Linux要如何使用OpenSSL命令行呢?下面小编将针对OpenSSL命令行的使用给大家做个详细介绍。 Linux如何使用OpenSSL命令行 1. base64编码/解码 谈到命令行下如何发送邮件附件,很多人想起了uuencode。也可以使用base64编码。以下是openssl base64编码/解码的使用: $ openssl base64 《filename.bin 》filename.txt $ openssl base64 -d 《filename.txt 》filename.bin 2. 校验文件的一致性

UNIX下校验文件一致性的方法很多,比如sum、cksum、md5sum、sha1sum等。sum和cksum适用于简单校验的场合,生成的校验码容易重复。md5sum有安全漏洞,当前比较推荐的是sha1sum。不过sha1sum在不同的平台用法有些不同。考虑到跨平台性,建议用openssl。 $ openssl sha1 filename SHA1(filename)= e83a42b9bc8431a6645099be50b6341a35d3dceb $ openssl md5 filename MD5(filename)= 26e9855f8ad6a5906fea121283c729c4 3. 文件加密/解密 OpenSSL支持很多加密算法,不过一些算法只是为了保持向后兼容性,现在已不推荐使用,比如DES和RC4-40。推荐使用的加密算法是bf(Blowfish)和-aes-128-cbc(运行在CBC模式的128

议从加密到数字签名

议从加密到数字签名 2004年3月24日,《中华人民共和国电子签名法(草案)》(下简称草案)经国务院原则通过,即将提请人大审议,这标志着我国首部信息化法律走出了立法第一步。由于该草案明确了合同双方和认证机构在电子签名活动中的权利和义务,其技术细节受到了各方人士广泛关注。笔者一直关注数字签名的发展,在此结合自已在学习加密、证书技术中的心得体会,试图就电子签名问题梳理出一个脉络,向广大网管朋友作一个浅显的介绍。 基本概念 “电子签名”是广义的提法,是以保障基于网络交易平台下交易各方的合法权益为目的,满足和替代传统签名功能的各种电子技术手段,并不是手工签字或印章的图像化,其中“交易”是指个人信息交换、电子商务和电子政务等基于网络平台的活动;“交易各方”指从事这些活动的各方当事人;“网络”一般是针对互联网而言。 “数字签名”是通过密码技术实现电子交易安全的形象说法,是电子签名的主要实现形式。它力图解决互联网交易面临的几个根本问题:数据保密;数据不被篡改;交易方能互相验证身份;交易发起方对自己的数据不能否认。 在密码学中,密码的本质是某种算法,由密码算法算出一个密钥(Key),然后使用该密钥对交易双方传送的数据加密。该数据通称“报文”,加密前叫“明文报文”,即明文;加密后叫“密文报文”,即密文,密文没有密钥是不可读的。所有加密算法本身都是公开的,属于纯数学的范畴,本文不作过多讨论;密码学只关注密钥管理的问题,因为加密通信的安全性只与密钥有关,这是本文关注的重点。 加密通信方式主要有对称加密和非对称加密两种。 在开始讨论之前,我们假定:在不安全的网络中(比如互联网),Alice是通信发起人;Bob是通信接收人;Alice与Bob相互信任;而Eve监听通信并伺机破坏:这是John Wiley 和Sons在经典教程《Applied Cryptography》(《应用密码学》)中提出的部分人物,这些人物和环境属性现已成为描述密码学技术的标准。 对称加密——解决数据本身加密问题 顾名思义,对称加密就是“一把锁对应一把钥匙”,加锁开锁都是它。有传统和现代的区别,以下用古老的替换加密法为例作一简单说明。 明文:HiIamAlice 密文:ZEECGCFEIP 密钥(密码): A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

openssl工具使用简介

openssl工具使用简介 1.私有密钥生成方法 生成私有密钥,可以使用不同的数字签名算法.下面分别介绍; #采用DSA算法 $ openssl dsaparam -noout -out dsakey0.pem -genkey 1024 #采用RSA算法 $ openssl genrsa -out rsakey0.pem 1024 #采用RSA算法,并使用密码保护.在生成私钥时,需要输入一个密码,用于保护私钥. #在使用这个私钥进行加/解密操作时,也需要输入这个密码. $ openssl genrsa -des3 -out rsakey1.pem 1024 2.公用密钥的生成方法 根据私钥来生成公钥 #生成dsa算法的公钥 $ openssl dsa -in dsakey0.pem -pubout -out dsakey0-pub.pem #生成rsa算法的公钥 $ openssl rsa -in rsakey0.pem -pubout -out rsakey0-pub.pem 3.自签名证书的生成方法 #产生DSA算法的证书 $ openssl req -x509 -key dsakey0.pem -days 365 -out mycert-dsa.pem -new #产生RSA算法的证书 $ openssl req -x509 -key rsakey0.pem -days 365 -out mycert-rsa.pem -new 4.使用证书进行邮件加密 我们的明文信件内容: $ cat test.txt 111111 222222 333333 444444 aaaaaa 使用证书对明文信件进行加密,输出到etest.txt文件: $ openssl smime -encrypt -in test.txt -out etest.txt mycert-rsa.pem 查看加密后的密文内容: $ cat etest.txt MIME-Version: 1.0 Content-Disposition: attachment; filename="smime.p7m" Content-Type: application/x-pkcs7-mime; smime-type=enveloped-data; name="smime.p7m" Content-Transfer-Encoding: base64 MIIBYAYJKoZIhvcNAQcDoIIBUTCCAU0CAQAxgewwgekCAQAwUjBFMQswCQYDVQQG EwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lk

相关主题