金色坐标

关注互联网应用和搜索引擎技术

« 怎么调用基于SSL的Web ServiceJDK1.4信息传递安全性之私钥加密 »

JDK1.4信息传递安全性之消息摘要

虽然JDK最新版本已经有了JDK5和JDK6,但是在目前已经成熟的企业级应用中,JDK1.4所占的比例仍然是巨大的。JDK1.4在信息传递的安全性保证方面,主要有以下概念:

1,消息摘要:这是一种与消息认证码结合使用以确保消息完整性的技术;
2,私钥加密:被设计用来确保消息机密性的技术;
3,公钥加密:允许通信双方不必事先协商秘钥即可共享秘密消息的技术;
4,数字签名:证明另一方的消息确定来自正确通信方的位模式;
5,数字证书:通过让第三方认证机构认证消息,向数字签名添加另一级别安全性的技术;
6,代码签名:由可信的实体将签名嵌入被传递的代码中的概念;
7,SSL/TLS:在客户机和服务器之间建立安全通信通道的协议。传输层安全性(Transport Layer Security (TLS))是安全套接字层(Secure Sockets Layer (SSL))的替代品。

1.消息摘要

消息摘要是一种确保消息完整性的功能。消息摘要获取消息作为输入并生成位块(通常是几百位长),该位块表示消息的指纹。消息中很小的更改(比如说,由闯入者和窃听者造成的更改)将引起指纹发生显著更改。

消息摘要函数是单向函数。从消息生成指纹是很简单的事情,但生成与给定指纹匹配的消息却很难。

消息摘要可强可弱。校验和(消息的所有字节异或运算的结果)是弱消息摘要函数的一个示例。很容易修改一个字节以生成任何期望的校验和指纹。大多数强函数使用散列法。消息中 1 位更改将引起指纹中巨大的更改(理想的比例是更改指纹中 50% 的位)。

JDK 1.4 支持下列消息摘要算法:
1,MD2 和 MD5,它们都是 128 位算法;
2,SHA-1 是 160 位算法;
3,SHA-256、SHA-383 和 SHA-512 提供更长的指纹,大小分别是 256 位、383 位和 512 位;

MD5 和 SHA-1 是最常用的算法。
消息摘要代码示例
import java.security.*;
import javax.crypto.*;
//
// Generate a Message Digest
public class MessageDigestExample {

  public static void main (String[] args) throws Exception {
    //
    // check args and get plaintext
    if (args.length !=1) {

      System.err.println("Usage: java MessageDigestExample text");
      System.exit(1);
    }
    byte[] plainText = args[0].getBytes("UTF8");
    //
    // get a message digest object using the MD5 algorithm
    MessageDigest messageDigest = MessageDigest.getInstance("MD5");
    //
    // print out the provider used
    System.out.println( "\n" + messageDigest.getProvider().getInfo() );
    //
    // calculate the digest and print it out
    messageDigest.update( plainText);
    System.out.println( "\nDigest: " );
    System.out.println( new String( messageDigest.digest(), "UTF8") );
  }
}




原创文章,如转载请注明:转载自金色坐标 [ http://www.kingxy.com/ ]

本文链接地址:http://www.kingxy.com/archives/9.html
  • 相关文章:
  • 信息系统集成数字证书原理  (2008-10-27 18:3:29)

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

订阅博客

  • 订阅我的博客:订阅我的博客
  • 通过Google订阅本站
  • 通过bloglines订阅本站
  • 通过抓虾订阅本站
  • 通过yahoo订阅本站

Search

Google

最新评论及回复

最近发表

金色坐标博客——京ICP备09009094号

本站采用创作共用版权协议, 要求署名、非商业用途和保持一致. 转载本站内容必须也遵循“署名-非商业用途-保持一致”的创作共用协议.
KingXY Blog - This site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License.