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

摘要

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

通过本文中你可以学到以下知识:

● 程序间如何安全通信

● 什么是 及 如何生成消息摘要

● 什么是 及 如何生成消息验证码

● 如何使用 Java工具生成和维护数字证书库

● 如何用程序给数字证书验证签名

● 如何利用数字证书给 applet签名突破applet的访问权限

关键字

消息摘要、消息验证码、指纹、加密、安全、 Java、数字签名、applet、数字证书

一、基础知识

计算机安全通信过程中,常使用消息摘要和消息验证码来保证传输的数据未曾被第三方修改。

消息摘要是对原始数据按照一定算法进行计算得到的结果,它主要检测原始数据是否被修改过。消息摘要与加密不同,加密是对原始数据进行变换,可以从变换后的数据中获得原始数据,而消息摘要是从原始数据中获得一部分信息,它比原始数据少得多,因此消息摘要可以看作是原始数据的指纹。

例:下面一段程序计算一段字符串的消息摘要

package com.messagedigest;
import java.security.*;
public class DigestPass {
 public static void main(String[] args) throws Exception{
  String str="Hello,I sent to you 80 yuan.";
  MessageDigest md = MessageDigest.getInstance("MD5");//常用的有MD5,SHA算法等
  md.update(str.getBytes("UTF-8"));//传入原始字串
  byte[] re = md.digest();//计算消息摘要放入byte数组中
  //下面把消息摘要转换为字符串
  String result = "";
  for(int i=0;i<re.length;i++){
   result += Integer.toHexString((0x000000ff&re[i])|0xffffff00).substring(6);
  }
  System.out.println(result);
 }
}

时间: 2024-12-30 03:58:30

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;

JAVA操作数字证书的方法

一:需要包含的包 import java.security.*; import java.io.*; import java.util.*; import java.security.*; import java.security.cert.*; import sun.security.x509.* import java.security.cert.Certificate; import java.security.cert.CertificateFactory; 二:从文件中读取证书 用ke

Java实现数字转成英文的方法_java

本文实例讲述了Java实现数字转成英文的方法.分享给大家供大家参考.具体分析如下: 英文数词,按3位3位区分 Hundred: 100 Thousand:1,000 Million: 1,000,000 Billion: 1,000,000,000 Trillion: 1,000,000,000,000 Quintillion: 1,000,000,000,000,000,000 Sextillion: 1,000,000,000,000,000,000,000 Nonillion: 1,000

java加解密-数字证书

一.概述   1.我们了解了对称加密算法.非对称加密算法.数字签名算法应用,他们组合起来使用就是数字证书   2.对称加密算法用来加解密数据,非对称加密算法常用来做密钥交换.数字签名算法主要用来验证数据的不可否认性   3.数字证书:对于我们来说最常见的就是银行给我们提供的数字证书,以文件下载的方式保存,或者以u盾的方式保存   4.数字证书其实就是我们非对称加密算法中存放了相关算法的公钥信息 二.模型分析     我们要制造数字证书.可以用openssl和java的keytools来获得,op

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

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

使用keytool管理数字证书

keytool是Java的数字证书管理工具,用于数字证书的生成,导入,导出与撤销等操作.它与本地密钥库关联,并可以对本地密钥库进行管理,可以将私钥存放于密钥库中,而公钥使用数字证书进行输出.keytool在jdk安装目录的bin文件夹下: 构建自签名证书 在构建CSR之前,需要先在密钥库中生成本地数字证书,此时需要提供用户的身份.加密算法.有效期等一些数字证书的基本信息: ? 1 2 keytool -genkeypair -keyalg RSA -keysize 1024 -sigalg MD

https证书/即SSL数字证书申请途径和流程

国际CA机构GlobalSign中国 数字证书颁发中心网站:http://cn.globalsign.com https证书即SSL数字证书,是广泛用 于网站通讯加密传输的解决方案,是提供通信保密的安全性协议,现已成为用来鉴别网站的真实身份,以及在浏览器与WEB服务器之间进行加密通讯的全球化标准. 常见的SSL数字证书分为以下几种类型,但申请流程大同小异,但一切工作均需在以上数字证书颁发中心的网站进行,建议先咨询该中心工作人员以确定是否有申请程序的更新步骤. DV域名型证书: 确认信息--发送

数字签名与数字证书技术简介 .

数字签名.数字证书等技术,是现代信息安全的核心技术,可谓使用面十分广泛.其基本理论本身并不复杂,本文希望通过深入浅出的介绍,能够让大家有一些基本了解.   对称加密.非对称加密 让我们通过一个例子开始:我们的主角分别是Alice和Bob.现在假设Alice要给Bob发送一份文件,文件内容非常机密.Alice不希望文件在发送的过程中被人截取而泄密. 这个时候,自然想到的方法就是对文件进行加密.当然除了加密外,我们还需要让Bob能够解密.就像Alice对文件上了锁,为了让Bob能够解开,则Bob必须

openssl数字证书常见格式与协议介绍

原文地址: http://blog.csdn.net/anxuegang/article/details/6157927 证书主要的文件类型和协议有: PEM.DER.PFX.JKS.KDB.CER.KEY.CSR.CRT.CRL .OCSP.SCEP等. PEM – Openssl使用 PEM(Privacy Enhanced Mail)格式来存放各种信息,它是 openssl 默认采用的信息存放方式.Openssl 中的 PEM 文件一般包含如下信息: 内容类型:表明本文件存放的是什么信息内