keytool 将密钥和证书储存在一个所谓的密钥仓库中。缺省的密钥仓库实现将密钥仓库实现为一个文件。
它用口令来保护私钥。
数字签名的原理
1:被发送文件采用哈希算法对原始报文进行运算,得到一个固定长度的数字串,称为报文摘要 (Message Digest),不同的报文所得到的报文摘要各异,但对相同的报文它的报文摘要却是唯一的。
2:发送方生成报文的报文摘要,用自己的私钥对摘要进行加密来形成发送方的数字签名。
3:这个数字签名将作为报文的附件和报文一起发送给接收方。
4:接收方首先从接收到的原始报文中用同样的算法计算出新的报文摘要,再用发送方的公钥对报文附件的数字签名进行解密,比较两个报文摘要,如果值相同,接收方就能确认该数字签名是发送方的。
生成证书(生成密钥库文件):
keytool -genkey -alias name1 -keyalg RSA -keystore C:\keystore
列出证书:
keytool -list -keystore C:\keystore
导出证书:
keytool -export -alias name1 -file name1.cer -keystore C:\keystore
keytool -export -alias name2 -file name2.cer -keystore C:\keystore
一、从密钥库文件中获取私钥:
FileInputStream fis = new FileInputStream(new File(密钥库文件));
// 打开keystore
KeyStore ks = KeyStore.getInstance("JKS");
ks.load(fis, keyStorePass.toCharArray());
// 取出alias的私钥
privateKey = (KeyStore.PrivateKeyEntry) ks.getEntry(alias,new PasswordProtection(keyAliasPass.toCharArray()));
二、用私钥对需要加密的字符串进行加密操作
// 用私钥对字符串进行加密采用RSA算法
Cipher desCipher = Cipher.getInstance("RSA/ECB/NoPadding");
desCipher.init(Cipher.ENCRYPT_MODE, 从密钥库文件中获取的私钥);
// 用私钥对信息进行加密
byte[] ciphertext = desCipher.doFinal(需要加密字符串);
分享到:
相关推荐
Keytool-IUI主要涉及以下几个核心知识点: 1. **密钥对和证书**:密钥对是公钥加密算法的基础,由一对密钥组成,即公钥和私钥。公钥用于加密数据,私钥用于解密。证书是一种电子文档,用于证明公钥的所有权,通常由...
关于KeyTool的一些关键知识点包括: 1. **密钥对**:KeyTool可以生成公钥和私钥对,这是加密和解密数据的基础,通常用于SSL/TLS协议,保证网络通信的安全。 2. **密钥库**:KeyTool管理的密钥和证书存储在称为密钥...
以下是关于`keytool`证书制作工具的详细知识: 1. **基本概念** - **密钥对**:密钥对由一对非对称密钥组成,包括一个公钥和一个私钥。公钥用于加密,私钥用于解密。 - **数字证书**:包含公钥及其拥有者信息的...
下面我们将详细探讨Java Keytool的使用方法和相关知识点。 1. **证书与密钥对** 数字证书是一种电子文档,用于证明网络实体的身份。它包含了公钥和相关标识信息,由可信的证书颁发机构(CA)签名。密钥对包括一个...
### keytool实现服务端和客户端双向加密 在现代网络通信中,数据安全至关重要。通过使用密钥管理和证书机制,可以确保服务端与客户端之间数据传输的安全性。本文将详细介绍如何利用`keytool`工具实现服务端和客户端...
#### 知识点一:KeyTool工具简介 KeyTool是Java自带的一个命令行工具,用于管理密钥库(Keystore),它能够帮助用户创建、管理数字证书以及私钥/公钥对。密钥库是用于存储各种密钥和证书链的文件。KeyTool提供的...
Keytool的知识点: 1. **Java密钥库**:Keytool用于管理Java的KeyStore,这是一个存储公钥、私钥、证书和其他安全信息的文件。KeyStore可以有多种类型,如JKS(Java KeyStore)和PKCS12。 2. **生成密钥对**:...
在本项目中,我们使用了Java的ITEXT库来处理PDF文档,以及keytool工具来生成数字证书。以下是关于这些知识点的详细说明: 1. **PDF数字签名**:PDF数字签名是一种用于验证PDF文档未经修改的机制。它使用非对称加密...
这个过程涉及到几个关键知识点,下面将详细解释。 1. **密钥对(Key Pair)**:在数字证书中,密钥对由一对非对称密钥组成,包括一个公钥和一个私钥。公钥用于加密数据,而私钥用于解密。在Android应用发布中,...
**知识点详解**: 1. **密钥对和证书**: - **密钥对**:在加密通信中,密钥对包括一个公钥和一个私钥。公钥用于加密信息,而私钥用于解密。这种非对称加密方式保证了信息的安全性。 - **数字证书**:证书是由可信...
学习和掌握这些知识对于进行安全的Web服务部署和管理至关重要。在实际操作时,务必注意证书的有效期、私钥保护以及证书链的完整性。如果是在生产环境中,通常会使用正式的CA签发的证书,而非自签名证书。
关于Ridioc项目和控制反转(IoC),我们可能可以了解到以下知识点: 1. **控制反转(IoC)**:IoC使得组件之间的依赖关系不再硬编码在组件内部,而是通过配置文件或者依赖注入框架来决定。这使得系统更易于测试和...
Java_keytool密钥存储文件 Java_keytool密钥存储文件是使用Java_keytool工具生成服务器配置SSL使用的密钥存储文件。该文件是一个容器,用于存储密钥和证书,它是SSL/TLS加密协议的基础组件。本文将详细介绍生成密钥...
在Java Development Kit (JDK) 中,`keytool` 是一...了解并掌握这些知识对于进行安全的Java网络编程至关重要。通过实践和理解`keytool`命令以及在Java代码中使用`KeyStore`和相关类,开发者能够确保数据传输的安全性。
在IT领域,尤其是在网络安全和Java开发中,命令行工具`keytool`扮演着重要的角色。`keytool`是Java Development Kit (JDK)自带的一个工具,用于管理...在实际开发或运维工作中,了解并熟练掌握这些知识是至关重要的。
下面将详细解释这个过程以及相关知识点。 首先,`keytool`是Java开发工具包(JDK)中的一个命令行工具,它主要用于管理密钥对和证书。在Android开发中,`keytool`被用来创建和管理数字证书,这些证书用于对APK进行...
【KeyTool证书生成】知识点详解 KeyTool是Java开发工具包(JDK)中自带的一个命令行工具,主要用于管理和创建密钥对(公钥和私钥)以及数字证书。在HTTPS通信中,数字证书用于验证服务器的身份,确保数据传输的安全性...
系统签名在IT行业中,特别是在Android开发中,是一个至关重要的...这涉及到的知识点包括:系统签名流程、keytool的使用、keystore的概念、证书与公私钥的理解、版本控制系统的基本原理,以及开源软件的许可协议遵守。
【描述】描述中提到的主要知识点包括: 1. **X509.pem文件**:这是一个包含公开密钥的证书文件,遵循X.509标准。在Android开发中,它通常用于表示应用的公钥证书,用于验证应用的身份。 2. **pk8文件**:这是包含...