古詩詞大全網 - 藝術簽名 - Java加密和數字簽名 1消息摘要

Java加密和數字簽名 1消息摘要

 本文主要談壹下密碼學中的加密和數字簽名 以及其在java中如何進行使用 對密碼學有興趣的夥伴 推薦看Bruce Schneier的著作 Applied Crypotography 在jdk 的發行版本中安全性方面有了很大的改進 也提供了對RSA算法的直接支持 現在我們從實例入手解決問題(本文僅是作為簡單介紹)

 壹 密碼學上常用的概念

  )消息摘要

 這是壹種與消息認證碼結合使用以確保消息完整性的技術 主要使用單向散列函數算法 可用於檢驗消息的完整性 和通過散列密碼直接以文本形式保存等 目前廣泛使用的算法有MD MD SHA jdk 對上面都提供了支持 在java中進行消息摘要很簡單 java security MessageDigest提供了壹個簡易的操作方法

  Java代碼

  /***MessageDigestExample java*Copyright */import java security MessageDigest;/***單壹的消息摘要算法 不使用密碼 可以用來對明文消息(如 密碼)隱藏保存*/public class MessageDigestExample{ public static void main(String[] args) throws Exception{  if(args length!= ){   System err println( Usage:java MessageDigestExample text );   System exit( );  }  byte[] plainText=args[ ] getBytes( UTF );  //使用getInstance( 算法 )來獲得消息摘要 這裏使用SHA 的 位算法  MessageDigest messageDigest=MessageDigest getInstance( SHA );  System out println( +messageDigest getProvider() getInfo());  //開始使用算法  messageDigest update(plainText);  System out println( Digest: );  //輸出算法運算結果  System out println(new String(messageDigest digest() UTF )); }}

lishixinzhi/Article/program/Java/gj/201311/27287