java加解密-数字证书

一、概述

  1、我们了解了对称加密算法、非对称加密算法、数字签名算法应用,他们组合起来使用就是数字证书

  2、对称加密算法用来加解密数据,非对称加密算法常用来做密钥交换、数字签名算法主要用来验证数据的不可否认性

  3、数字证书:对于我们来说最常见的就是银行给我们提供的数字证书,以文件下载的方式保存,或者以u盾的方式保存

  4、数字证书其实就是我们非对称加密算法中存放了相关算法的公钥信息

二、模型分析

    我们要制造数字证书。可以用openssl和java的keytools来获得,openssl开源软件这个比keytools功能强大。

  1、keytools生成数字证书,并创建本地密钥库。

  2、数字证书(客户端)给客户,本地密钥库配合tomcat这些应用服务器使用。开放服务器的安全端口,用https访问服务器的时候,就是进行加密数据交互了。那些对称加密、非对称加密算法 都被隐藏在交互细节中了,对我们使用者来说是透明的

  3、客户将数字证书导入自己的浏览器,和tomcat进行数据传送。通过他们内部实现的协议进行数据加密传输,同时通过签名验证数据的真实性

 

三、实现方式

  1、证书的产生必须用openssl或者keytools来完成

  2、放到外部使用需要用tomcat的ssl/tls配置作为支持

  3、如果需要第三方发放签名证书,可以将证书的csr文件给第三方公正,常见的国际公正三巨头可以帮我们做这些。免费的第三方只有cacert了。电子商务常用的就是verisign这个付费的第三方证书发放机构。如果不用第三方,就是自签名的了。没啥法律效力

 

四、总结

 1、上述模型只是说了单向加密、如果需要双向加密实现方式相同。只不过需要创建客户端证书、服务器端证书等等...

 2、安全的终极装备就是安全协议。这个tomcat的ssl/tls配置是最好的体现

 3、常规的加解密或者数字证书,核心还是用rsa之类的非对称加密算法传递密钥,然后通过对称加密算法进行加密数据传输。用签名算法进行数据校验

时间: 2024-10-30 07:00:01

java加解密-数字证书的相关文章

Java加解密技术系列之RSA详解_java

距离上一次写博客感觉已经很长时间了,先吐槽一下,这个月以来,公司一直在加班,又是发版.上线,又是新项目太紧,具体的就不多说了.今天来说说非对称加密真的是太重要了,我们的日常生活中,都离不开非对称加密. 概念 在说 RSA 之前,首先聊聊什么是非对称加密.在讲对称加密的时候,就曾经说过,对称加密算法在加密和解密时使用的是同一个秘钥,加解密双方必须使用同一个密钥才能进行正常的沟通.而非对称加密则不然,非对称加密算法需要两个密钥来进行加密和解密,分别是公钥和私钥. 需要注意的一点,这个公钥和私钥必须是

Java安全通信、数字证书及应用实践

摘要: 在本文中,我用详细的语言和大量的图片及完整的程序源码向你展示了在 JAVA中如何实现通过消息摘要.消息验证码达到安全通信.以及用Java的工具生成数字证书,和用程序给数字证书签名.以及用签名后的数学证书签名applet突破applet的访问权限的过程,给出了全部例子的详细代码. 通过本文中你可以学到以下知识: ● 程序间如何安全通信 ● 什么是 及 如何生成消息摘要 ● 什么是 及 如何生成消息验证码 ● 如何使用 Java工具生成和维护数字证书库 ● 如何用程序给数字证书验证签名 ●

C#创建数字证书并导出为pfx,并使用pfx进行非对称加解密

本文源程序下载:http://download.csdn.net/source/2444494   我的项目当中,考虑到安全性,需要为每个客户端分发一个数字证书,同时使用数字证书中的公私钥来进行数据的加解密.为了完成这个安全模块,特写了如下一个DEMO程序,该DEMO程序包含的功能有: 1:调用.NET2.0的MAKECERT创建含有私钥的数字证书,并存储到个人证书区: 2:将该证书导出为pfx文件,并为其指定一个用来打开pfx文件的password: 3:读取pfx文件,导出pfx中公钥和私钥

java 指数 背包 RSA 加解密

问题描述 高手帮帮忙,现在要做一个指数加解密.背包加解密.RSA加解密的小应用程序用java来实现就是在一个窗口的文本域里输入一串数字,在同一个窗口输出加解密后的结果,急,高手帮帮忙!

纯Java实现数字证书生成签名的简单实例_java

package com.ylsoft.cert; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.security.InvalidKeyException; import java.security.KeyPair; import java.security.KeyPairGenerator;

DES 算法的 C++ 与 JAVA 互相加解密

原文地址:http://www.cnblogs.com/AloneSword/p/3479376.html 在 JAVA 中,从 J2EE1.4 开始,SUN 提供了 JCE( JAVA CRYPTO ENGINE ),其中包含有 DES 算法,在 JAVA 中使用 DES 算法的代码示例如下: import java.security.Key; import java.security.Security; import javax.crypto.Cipher; public class DES

javascript-上海市数字证书认证中心提供的USBkey,如何通过js、Java语言获取设备

问题描述 上海市数字证书认证中心提供的USBkey,如何通过js.Java语言获取设备 电脑插入USBkey,已经安装了驱动.点击jsp按钮,获取插入的设备的基本信息. 解决方案 本身这个usbkey有没有给出c++或者某种语言的调用程序,如果有的话,可以用activex封装成控件,在网页中用js调用. 解决方案二: http://www.sheca.com/service/kb.aspx,这就是上海市数字证书认证中心的网站,上面提供的文档都是些接口..昨天寻找了一天都没找到相应的jar包 来调

懂java和php来,aes加解密将java版转为php版

问题描述 懂java和php来,aes加解密将java版转为php版 /** * AES加密 * * @param key * 密钥信息 * @param content * 待加密信息 */ public static byte[] encodeAES(byte[] key, byte[] content) throws Exception { // 不是16的倍数的,补足 int base = 16; if (key.length % base != 0) { int groups = ke

一个java的DES加解密类转换成C#

原文:一个java的DES加解密类转换成C# 一个java的des加密解密代码如下: //package com.visionsky.util; import java.security.*; //import java.util.regex.Pattern; //import java.util.Hashtable; import javax.crypto.*; import javax.crypto.spec.*; import sun.misc.*; /** * des加密解密 */ pu