关于数字证书的一些笔记:
- 数字签名的作用是认证,而不是加密
- RSA算法中,公钥加密的只能用私钥解密,反之亦然。私钥加密更有意义,因为它具备了签名的作用私钥保存在密钥库中(文件形式),同时密钥库还会保存发给客户的数字证书。
- 证书传递可以通过U盘传递等多种途径进行。银行的U盾就是个典型的数字证书
- 如果需要双向认证,则需要3个证书。对于web应用,证书要配合activeX使用
- 将webservice加证书认证,只需要安装所需要的证书,以及配置应用服务器就可以。对开发是透明的
- 用数字证书替代直接使用公钥,是为了防止公钥被人偷换。因为无法辨别公钥到底是不是原来的那个。
- SSLSocket中,server端用keystore进行监听。客户端可以将cert加到自己信任的keystore中,也可以手工解析服务器的cert文件(或其他方式存储)
- eclipse的远程调试,如果连接用的是SSL,那么服务器的jar要用jarsigner.exe签名过才能调试
keytool的使用:
#生成私钥
keytool -genkeypair -alias "UMG" -keyalg "RSA" -keystore "d:\umg.keystore"
#生成自认证证书
keytool -export -alias "UMG" -file "d:\umg.cer" -keystore "d:\umg.keystore"
#导入自认证证书
keytool -import -file "d:\umg.cer" -keystore "d:\dsv.keystore"
#逆向
keytool -genkeypair -alias "dsv" -keyalg "RSA" -keystore "d:\dsv.keystore"
keytool -export -alias "dsv" -file "d:\dsv.cer" -keystore "d:\dsv.keystore"
keytool -import -file "d:\dsv.cer" -keystore "d:\umg.keystore"
Java的加解密例子:
public class RSAUtil { /** * RSA加密 */ public static byte[] encript(byte[] src,Key key) throws Exception{ Cipher cipher=Cipher.getInstance("RSA");//DES对称,RSA非对称。。。 cipher.init(Cipher.ENCRYPT_MODE, key); return cipher.doFinal(src); } /** * RSA解密 */ public static byte[] decript(byte[] encripted,Key key) throws Exception{ Cipher cipher=Cipher.getInstance("RSA");//algorithm cipher.init(Cipher.DECRYPT_MODE, key); return cipher.doFinal(encripted); } /** * 生成密钥对,每次生成的密钥对都不一样 */ public static KeyPair generateKeyPair() throws NoSuchAlgorithmException{ KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("RSA"); keyPairGen.initialize(1024); return keyPairGen.generateKeyPair(); } }
测试代码:
相关推荐
最后,`JAVA使用数字证书加密文件.doc`可能是一个文档,详细介绍了整个过程和步骤,包括如何使用提供的工具和代码示例。`好礼说明 - 副本.txt`可能是关于额外资源或优惠的说明,但与核心的加密技术无关。 综上所述...
KeyTool工具生成X.509证书是Java平台自带的一个命令行工具,它主要用于管理和操作密钥对(公钥和私钥)以及数字证书。在本文中,我们将深入探讨KeyTool的基本用法、X.509证书的概念,以及如何使用KeyTool生成这种...
总结起来,KeyTool 1.6作为数字证书工具,是Java环境下的基础安全工具,对于任何需要处理加密通信的开发者来说,理解和熟练使用KeyTool都是非常必要的。通过掌握如何生成、管理以及交互数字证书,我们可以确保网络...
KeyTool是Java Development Kit (JDK)自带的一个命令行工具,它主要用于创建、管理及导出数字证书和密钥对。这些证书用于验证服务器的身份,确保数据传输的安全性,比如在HTTPS协议中。 2. **证书与密钥** - **...
标题中的“keytool 加密证书制作”指的是使用Java自带的工具——keytool,来创建和管理数字证书。这个过程涉及到网络安全、加密技术和PKI(Public Key Infrastructure,公钥基础设施)等概念。 首先,理解keytool的...
Keytool-IUI 是一个增强版的Java密钥和证书管理工具,它扩展了标准的Java Keytool命令行工具,提供了更友好的用户界面(UI),使得在IT环境中管理和操作数字证书变得更加直观和方便。Keytool是Java Development Kit...
在本项目中,我们使用了Java的ITEXT库来处理PDF文档,以及keytool工具来生成数字证书。以下是关于这些知识点的详细说明: 1. **PDF数字签名**:PDF数字签名是一种用于验证PDF文档未经修改的机制。它使用非对称加密...
下面将详细介绍这两个工具以及如何使用它们生成证书。 1. **openssl** OpenSSL是一款开源的SSL/TLS库,它包含了一系列强大的加密算法,支持多种证书格式。在HTTPS证书生成过程中,openssl主要用来生成私钥和CSR...
本篇文章将深入探讨`keytool`的使用,特别是如何通过命令行生成证书的Distinguished Name (DN)以及如何创建数字证书容器。 首先,让我们理解什么是Distinguished Name (DN)。DN是X.509证书中一个独特的标识符,它...
`keytool`是Java开发工具包(JDK)中...综上所述,`keytool`是Java环境下的强大工具,用于管理和操作数字证书,确保网络通信的安全性。通过熟练掌握其用法,开发者可以更好地保护自己的系统和服务免受潜在的安全威胁。
Java的Keytool GUI图形工具是Java开发者和系统管理员在处理数字证书和密钥对时的重要辅助工具。Keytool是Java自带的一个命令行工具,用于管理Java Keystore,它包含了公钥、私钥以及证书链。然而,对于不熟悉命令行...
本文将深入探讨“数字证书查看、拆分和格式转换工具”这一主题,涉及的关键词包括“SSL”、“keystore”、“crt”和“key”。 首先,让我们了解SSL(Secure Sockets Layer)和它的升级版TLS(Transport Layer ...
Java代码生成数字证书涉及到几个关键概念和技术,包括...以上就是使用Java代码生成数字证书的基本原理和过程,以及如何不通过keytool工具进行操作。通过理解这些概念,您可以根据需要创建自定义的证书生成解决方案。
Keytool是Java提供的一款工具,主要用于管理密钥对(公钥和私钥)以及数字证书,它允许用户创建、存储和管理这些安全组件。在本主题中,我们将深入探讨如何使用keytool生成证书及其相关概念。 首先,让我们了解什么...
1. 生成数字证书:使用 Keytool 工具生成数字证书。 2. 配置 Tomcat:在 Tomcat 的配置文件中配置数字证书的路径和密码。 3. 启用 HTTPS:在 Tomcat 中启用 HTTPS 协议,以确保数据的机密性和完整性。 数字证书是一...
Java的`keytool`工具是Java Development Kit (JDK) 中的一个重要组件,主要用于管理和操作密钥对(公钥和私钥)以及数字证书。它提供了在本地系统中创建、导入、导出、查看和管理这些安全凭证的功能,这对于开发和...
Java Keytool是Java开发工具包(JDK)中自带的一个命令行工具,主要用于管理数字证书、密钥对以及信任库。这个工具对于开发者和系统管理员来说非常重要,因为它们在进行安全通信,尤其是HTTPS、SSL/TLS连接时起着...
Java代码验证keytool工具生成的密钥对是一个关键的安全操作,尤其在开发和部署SSL/TLS加密、Android应用签名或服务器身份验证等场景中。Keytool是Java Development Kit(JDK)自带的一个命令行工具,用于管理公钥/...
证书加密是WS-Security中的一个重要组成部分,它通常使用X.509数字证书来验证服务提供者和服务消费者的标识,并对消息进行加密。X.509证书包含公钥和私钥,公钥用于加密数据,私钥用于解密数据。在CXF中,我们可以...
**描述**: Keytool是Java开发的一个强大工具,用于管理密钥对(公钥和私钥)以及数字证书。它可以帮助用户创建、存储、导出、导入和管理这些安全组件,这对于进行安全的网络通信和身份验证至关重要。 **知识点详解*...