成都定制网站建设服,1免费网站建站,织梦源码网,渌口区市政建设局网站目录Java加解密实用工具1 OpenSSL2 Keytool3 XCA4 KeyStore ExplorerJava加解密实用工具
1 OpenSSL
OpenSSL是一个开放源代码的软件库包#xff0c;应用程序可以使用这个包来进行安全通信#xff0c;避免窃听#xff0c;同时确认另一端连接者的身份。 例如Apache 使用它加…
目录Java加解密实用工具1 OpenSSL2 Keytool3 XCA4 KeyStore ExplorerJava加解密实用工具
1 OpenSSL
OpenSSL是一个开放源代码的软件库包应用程序可以使用这个包来进行安全通信避免窃听同时确认另一端连接者的身份。 例如Apache 使用它加密 HTTPSOpenSSH 使用它加密 SSH。
OpenSSL整个软件包大概可以分成三个主要的功能部分
SSL协议库 OpenSSL实现了SSL协议的SSLv2和SSLv3支持了其中绝大部分算法协议。OpenSSL也实现了TLSv1.0TLS是SSLv3的标准化版虽然区别不大但毕竟有很多细节不尽相同。 虽然已经有众多的软件实现了OpenSSL的功能但是OpenSSL里面实现的SSL协议能够让我们对SSL协议有一个更加清楚的认识因为至少存在两点一是OpenSSL实现的SSL协议是开放源代码的我们可以追究SSL协议实现的每一个细节二是OpenSSL实现的SSL协议是纯粹的SSL协议没有跟其它协议如HTTP协议结合在一起澄清了SSL协议的本来面目。应用程序 密钥证书管理 密钥和证书管理是PKI的一个重要组成部分OpenSSL为之提供了丰富的功能支持多种标准。 首先OpenSSL实现了ASN.1的证书和密钥相关标准提供了对证书、公钥、私钥、证书请求以及CRL等数据对象的DER、PEM和BASE64的编解码功能。OpenSSL提供了产生各种公开密钥对和对称密钥的方法、函数和应用程序同时提供了对公钥和私钥的DER编解码功能。并实现了私钥的PKCS#12和PKCS#8的编解码功能。OpenSSL在标准中提供了对私钥的加密保护功能使得密钥可以安全地进行存储和分发。 在此基础上OpenSSL实现了对证书的X.509标准编解码、PKCS#12格式的编解码以及PKCS#7的编解码功能。并提供了一种文本数据库支持证书的管理功能包括证书密钥产生、请求产生、证书签发、吊销和验证等功能。 事实上OpenSSL提供的CA应用程序就是一个小型的证书管理中心CA实现了证书签发的整个流程和证书管理的大部分机制。OpenSSL对于随机数的生成和管理也提供了一整套的解决方法和支持API函数。随机数的好坏是决定一个密钥是否安全的重要前提。 密码算法库 对称加密 OpenSSL一共提供了8种对称加密算法其中7种是分组加密算法仅有的一种流加密算法是RC4。这7种分组加密算法分别是AES、DES、Blowfish、CAST、IDEA、RC2、RC5都支持电子密码本模式ECB、加密分组链接模式CBC、加密反馈模式CFB和输出反馈模式OFB四种常用的分组密码加密模式。其中AES使用的加密反馈模式CFB和输出反馈模式OFB分组长度是128位其它算法使用的则是64位。事实上DES算法里面不仅仅是常用的DES算法还支持三个密钥和两个密钥3DES算法。非对称加密 OpenSSL一共实现了4种非对称加密算法包括DH算法、RSA算法、DSA算法和椭圆曲线算法EC。DH算法一般用于密钥交换。RSA算法既可以用于密钥交换也可以用于数字签名当然如果你能够忍受其缓慢的速度那么也可以用于数据加密。DSA算法则一般只用于数字签名。信息摘要 OpenSSL实现了5种信息摘要算法分别是MD2、MD5、MDC2、SHASHA1和RIPEMD。SHA算法事实上包括了SHA和SHA1两种信息摘要算法。此外OpenSSL还实现了DSS标准中规定的两种信息摘要算法DSS和DSS1。
OpenSSL 包含一个命令行工具用来完成 OpenSSL 库中的所有功能官网及下载地址 https://www.openssl.org/ http://slproweb.com/products/Win32OpenSSL.html
2 Keytool
keytool 是JDK 提供的证书相关操作的命令行工具只要安装JDK 并且配置好相应的环境变量或者切换工作目录至keytool工具目录下就可以在命令窗口运行。
C:\Users\Administratorkeytool -help
密钥和证书管理工具命令:-certreq 生成证书请求-changealias 更改条目的别名-delete 删除条目-exportcert 导出证书-genkeypair 生成密钥对-genseckey 生成密钥-gencert 根据证书请求生成证书-importcert 导入证书或证书链-importpass 导入口令-importkeystore 从其他密钥库导入一个或所有条目-keypasswd 更改条目的密钥口令-list 列出密钥库中的条目-printcert 打印证书内容-printcertreq 打印证书请求的内容-printcrl 打印 CRL 文件的内容-storepasswd 更改密钥库的存储口令使用 keytool -command_name -help 获取 command_name 的用法C:\Users\AdministratorC:\Users\Administratorkeytool -certreq -help
keytool -certreq [OPTION]...生成证书请求选项:-alias alias 要处理的条目的别名-sigalg sigalg 签名算法名称-file filename 输出文件名-keypass arg 密钥口令-keystore keystore 密钥库名称-dname dname 唯一判别名-storepass arg 密钥库口令-storetype storetype 密钥库类型-providername providername 提供方名称-providerclass providerclass 提供方类名-providerarg arg 提供方参数-providerpath pathlist 提供方类路径-v 详细输出-protected 通过受保护的机制的口令C:\Users\Administratorkeytool -changealias -help
keytool -changealias [OPTION]...更改条目的别名选项:-alias alias 要处理的条目的别名
-destalias destalias 目标别名
-keypass arg 密钥口令
-keystore keystore 密钥库名称
-storepass arg 密钥库口令
-storetype storetype 密钥库类型
-providername providername 提供方名称
-providerclass providerclass 提供方类名
-providerarg arg 提供方参数
-providerpath pathlist 提供方类路径
-v 详细输出
-protected 通过受保护的机制的口令3 XCA
XCAX Certificate and key management 是作为证书和密钥存储以及作为签发证书的签名应用程序是一个开源的工具底层还是基于openssl的类库和API的。 首先需要下载并安装工具官网地址为https://www.hohnstaedt.de/xca/index.php/download
4 KeyStore Explorer
KeyStore Explorer KeyStoreExplorer是Java命令行程序keytool和jarsigner的开源GUI替代工具。KeyStore Explorer通过直观的图形用户界面展示其丰富的功能。
首先需要下载并安装工具官网地址为https://keystore-explorer.org/downloads.html