Java加密技术(九)

在Java加密技术(八)中,我们模拟了一个基于RSA非对称加密网络的安全通信。现在我们深度了解一下现有的安全网络通信——SSL。

我们需要构建一个由CA机构签发的有效证书,这里我们使用上文中生成的自签名证书zlex.cer

这里,我们将证书导入到我们的密钥库。

Shell代码

keytool -import -alias www.zlex.org -file d:/zlex.cer -keystore d:/zlex-client.keystore

其中

-import表示导入

-alias指定别名,这里是www.zlex.org

-file指定算法,这里是d:/zlex.cer

-keystore指定存储位置,这里是d:/zlex-client.keystore

在这里我使用的密码为654321

控制台输出:

Console代码

输入keystore密码:
再次输入新密码:
所有者:CN=www.zlex.org, OU=zlex, O=zlex, L=BJ, ST=BJ, C=CN
签发人:CN=www.zlex.org, OU=zlex, O=zlex, L=BJ, ST=BJ, C=CN
序列号:4a1e48df
有效期: Thu May 28 16:18:39 CST 2009 至Wed Aug 26 16:18:39 CST 2009
证书指纹:
          MD5:19:CA:E6:36:E2:DF:AD:96:31:97:2F:A9:AD:FC:37:6A
          SHA1:49:88:30:59:29:45:F1:69:CA:97:A9:6D:8A:CF:08:D2:C3:D5:C0:C4
          签名算法名称:SHA1withRSA
          版本: 3
信任这个认证? [否]:  y
认证已添加至keystore中

OK,最复杂的准备工作已经完成。

接下来我们将域名www.zlex.org定位到本机上。打开C:\Windows\System32\drivers\etc\hosts文件,将www.zlex.org绑定在本机上。在文件末尾追加127.0.0.1  www.zlex.org。现在通过地址栏访问http://www.zlex.org,或者通过ping命令,如果能够定位到本机,域名映射就搞定了。

现在,配置tomcat。先将zlex.keystore拷贝到tomcat的conf目录下,然后配置server.xml。将如下内容加入配置文件

Xml代码

<Connector
     SSLEnabled="true"
     URIEncoding="UTF-8"
     clientAuth="false"
     keystoreFile="conf/zlex.keystore"
     keystorePass="123456"
     maxThreads="150"
     port="443"
     protocol="HTTP/1.1"
     scheme="https"
     secure="true"
     sslProtocol="TLS" />

时间: 2024-10-14 08:02:06

Java加密技术(九)的相关文章

Java加密技术(十)

在Java 加密技术(九)中,我们使用自签名证书完成了认证.接下来,我们使用第三方CA签名机构完成证书签名. 这里我们使用thawte提供的测试用21天免费ca证书. 1.要在该网站上注明你的域名,这里使用www.zlex.org作为测试用域名(请勿使用该域名作为你的域名地址,该域名受法律保护!请使用其他非注册域名!). 2.如果域名有效,你会收到邮件要求你访问https://www.thawte.com/cgi/server/try.exe获得ca证书. 3.复述密钥库的创建. Shell代码

Java加密技术(一)——BASE64与单向加密算法MD5&amp;amp;SHA&amp;amp;MAC

 加密解密,曾经是我一个毕业设计的重要组件.在工作了多年以后回想当时那个加密.解密算法,实在是太单纯了.     言归正传,这里我们主要描述Java已经实现的一些加密解密算法,最后介绍数字证书.     如基本的单向加密算法:  BASE64 严格地说,属于编码格式,而非加密算法 MD5(Message Digest algorithm 5,信息摘要算法) SHA(Secure Hash Algorithm,安全散列算法) HMAC(Hash Message Authentication Cod

Java加密技术(八)

本篇的主要内容为Java证书体系的实现. 请大家在阅读本篇内容时先阅读 Java加密技术(四),预先了解RSA加密算法. 在构建Java代码实现前,我们需要完成证书的制作. 1.生成keyStroe文件 在命令行下执行以下命令: Shell代码 keytool -genkey -alias www.zlex.org -keyalg RSA -keystore d:\zlex.keystore 其中 -genkey表示生成密钥 -alias指定别名,这里是www.zlex.org -keyalg指

Java加密技术(七)

ECC ECC-Elliptic Curves Cryptography,椭圆曲线密码编码学,是目前已知的公钥体制中,对每比特所提供加密强度最高的一种体制.在软件注册保护方面起到很大的作用,一般的序列号通常由该算法产生. 当我开始整理<Java加密技术(二)>的时候,我就已经在开始研究ECC了,但是关于Java实现ECC算法的资料实在是太少了,无论是国内还是国外的资料,无论是官方还是非官方的解释,最终只有一种答案--ECC算法在jdk1.5后加入支持,目前仅仅只能完成密钥的生成与解析. 尽管如

Java加密技术(三)

除了DES,我们还知道有DESede(TripleDES,就是3DES).AES.Blowfish.RC2.RC4(ARCFOUR)等多种对称加密方式,其实现方式大同小异,这里介绍对称加密的另一个算法--PBE PBE PBE--Password-based encryption(基于密码加密).其特点在于口令由用户自己掌管,不借助任何物理媒体:采用随机数(这里我们叫做盐)杂凑多重加密等方法保证数据的安全性.是一种简便的加密方式. 通过java代码实现如下:Coder类见 Java加密技术(一)

Java加密技术(二)

接下来我们介绍对称加密算法,最常用的莫过于DES数据加密算法. DES DES-Data Encryption Standard,即数据加密算法.是IBM公司于1975年研究成功并公开发表的.DES算法的入口参数有三个:Key.Data.Mode.其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密. DES算法把64位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位. 通过java

将Java加密技术同Windows结合起来

公共钥匙加密技术需要一个空间来存储数字证书和私钥.通过将钥匙和证书存储到一个文件中(称为keystore),Java Security Architecture实现了独立于平台的加密技术. Microsoft Windows把钥匙和证书存储到Windows注册表和文件系统中.这就是说,在Windows系统上运行安全的Java程序的用户必须在Java和Microsoft的钥匙和证书库之间输入和输出钥匙和证书.好消息是,你可以"哄骗"Java应用程序通过Microsoft本地函数来运用Mi

Java加密技术(一)

加密解密,曾经是我一个毕业设计的重要组件.在工作了多年以后回想当时那个加密.解密算法,实在是太单纯了. 言归正传,这里我们主要描述Java已经实现的一些加密解密算法,最后介绍数字证书. 如基本的单向加密算法: BASE64 严格地说,属于编码格式,而非加密算法 MD5(Message Digest algorithm 5,信息摘要算法) SHA(Secure Hash Algorithm,安全散列算法) HMAC(Hash Message Authentication Code,散列消息鉴别码)

Java加密技术(四)

接下来我们介绍典型的非对称加密算法--RSA RSA 这种算法1978年就出现了,它是第一个既能用于数据加密也能用于数字签名的算法.它易于理解和操作,也很流行.算法的名字以发明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman. 这种加密算法的特点主要是密钥的变化,上文我们看到DES只有一个密钥.相当于只有一把钥匙,如果这把钥匙丢了,数据也就不安全了.RSA同时有两把钥匙,公钥与私钥.同时支持数字签名.数字签名的意义在于,对传输过来的数据进行校验.确保数据