JDK中的证书生成和管理工具keytool-编程开发技术

JDK中的证书生成和管理工具keytool-编程开发技术

ID:43708894

大小:177.52 KB

页数:10页

时间:2019-10-13

JDK中的证书生成和管理工具keytool-编程开发技术_第1页
JDK中的证书生成和管理工具keytool-编程开发技术_第2页
JDK中的证书生成和管理工具keytool-编程开发技术_第3页
JDK中的证书生成和管理工具keytool-编程开发技术_第4页
JDK中的证书生成和管理工具keytool-编程开发技术_第5页
资源描述:

《JDK中的证书生成和管理工具keytool-编程开发技术》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、JDK中的证廿生成和管理工具keytool-编程开发技术JDK中的证书生成和管理工具keytool原文出处:京山游侠参考资料该文屮的内容来源于Oracle的官方文档?JavaSEToolsReference?。Oracle在Java方面的文档是非常完善的。对Java8感兴趣的朋友,可以直接找到这个总入M?JavaSE8Documentation?,想阅读什么就点什么。木博客不定期从Oracle官网搬砖。这里介绍的工具是?keytool?o网络安全概论在Web世界里,安全是一个重之乂重的课题,甚至是美国政府都禁止某些加密解密算法的出口。Java和L

2、inux都是Web领域的领头羊,各种加解密的算法和管理工具一应俱全,例如GnuPG就是一个不错的安全套件。但是在这里,只展示一下JDK中的keytool工貝的使用方法。先来说一下加解密算法的分类。基本上可以分为三类,它们分别是对称性解密算法、非对称性加密算法和消息摘要算法。每一类算法中乂有多个不同的具体算法。对于这些算法,我们不要求完全掌握,但是对丁•各类算法的特点和用途是一定耍了解的,对于一些常见的名字,女口DES、AES、RSA、DSA、MD5、SI1A1等,一定要熟悉,至少要知道它们分别屈于哪类算法。对称性加密算法使用同一个密钥对信息进行加

3、密和解密,其信息的安全性一部分取决于加密算法和密钥的长度,另一部分取决于密钥在传递过程中是否会被截获或盗取。非对称性加密算法使用两个密钥分别对信息进行加密和解密,这两个密钥称为私钥/公钥对。使用私钥加密的信息必须使用公钥解密,反之亦然。公钥可以公开发布,私钥由加密方保存,绝对不公开,将私钥被截获或窃取的可能性降到最低,因此非对称性加密算法的安全性比对称性加密算法的安全性更高。既然非对称性加密算法比对称性加密算法安全性更高,那对称性加密算法有什么存在的必要呢?这是因为对称性加密算法的运算速度更快。现实屮,往往将对称性加密算法和非对称性加密算法结合使

4、用,对于要传输的人块数据使用对称性加密算法加密,然后对加密使用的密钥使用非对称性加密算法进行加密,这样既可以获得更高的安全性,又可以获得更高的加解密运算速度。常用的对称性加密算法有DES算法、AES算法、3DES算法、TDEA算法、Blowfish算法、RC5算法、IDEA算法。常用的非对称性加密算法有DSA算法、RSA算法、Elgamal算法、背包算法、Rabin算法、D-H算法、ECC算法(椭圆曲线加密算法)。消息摘要算法的主要目的是对数据生成摘要。消息摘要算法不需要密钥,只冇输入相同的数据才能得到相同的摘要,而且不可能从摘要反过来推算出数据

5、。常用的消息摘要算法有MD5算法和SHA-1算法及其大量的变体。它们可以用来保证数据的完整性,在网络上发布文件吋,常同时提供该文件的MD5值就是利用的消息摘要算法的这个特点,一旦该文件被篡改或者在网络传输中出现数据错谋,再对其进行摘要运算就得不到相同的MD5值。对数据进行签名是我们在网络中最常见的安全操作。签名有双重作用,作用一就是保证数据的完整性,证明数据并非伪造,而H在传输的过程中没有被篡改,作用二就是防止数据的发布者否认其发布了该数据。签名同时使用了非对称性加密算法和消息摘要算法,对一块数据签名时,会先对这块数据进行消息摘要运算生成一个摘要

6、,然后对该摘要使用发布者的私钥进行加密。接收者接受这块数据后,先使用发布者的公钥进行解密得到原数据的摘要,再对接收到的数据计算摘要,如果两个摘耍相同,则说明数据没有被篡改。同时,因为发布者的私钥是不公开的,只要接收者通过发布者的公钥能成功对数据进行解密,就说明该数据一定来源于该发布者,他再怎么抵赖也没有用。那么问题来了,怎么确定某公钥一定是屈于某发布者的呢?这就需要证书了。证书由权威认证机构颁发,其内容包含证书所冇者的标识和它的公钥,并由权威认证机构使用它的私钥进行签名。信息的发布者通过在网络上发布证书来公开它的公钥,该证书由权威认证机构进行签名

7、,认证机构也是通过发布它的证书来公开该机构的公钥,认证机构的证书由更权威的认证机构进行签名,这样就形成了证书链。证书链最顶端的证书称为根证书,根证书就只有口签名了。总Z,要对网络上传播的内容进行签名和认证,就一定会用到证书。关于证书遵循的标准,最流行的是X.509,关于证书的具体内容,网络上一搜一大把,我这里就不讲了。使用keytool创建和管理证书在Java小也广泛使用证书,例如,使用?jarsigncr?命令对jar包进行签名和认证。JDK屮创建和管理证书的工具是?keytool?0?keytool?是一个功能强大的安全工具,它不仅仅只是用來

8、创建和管理证书,还可以用來创建和管理对称性加密算法需要用到的密钥,还可以用自己的证书给别人签发证书(类似CA的工作),还可以导入别人发布

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。