天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

Java加密和數(shù)字簽名編程

  本文主要談一下密碼學(xué)中的加密和數(shù)字簽名,以及其在Java中如何進(jìn)行使用。對(duì)密碼學(xué)有興趣的伙伴,推薦看Bruce Schneier的著作:Applied Crypotography。在jdk1.5的發(fā)行版本中安全性方面有了很大的改進(jìn),也提供了對(duì)RSA算法的直接支持,現(xiàn)在我們從實(shí)例入手解決問(wèn)題(本文僅是作為簡(jiǎn)單介紹):

  一、密碼學(xué)上常用的概念 

  1)消息摘要:

  這是一種與消息認(rèn)證碼結(jié)合使用以確保消息完整性的技術(shù)。主要使用單向散列函數(shù)算法,可用于檢驗(yàn)消息的完整性,和通過(guò)散列密碼直接以文本形式保存等,目前廣泛使用的算法有MD4、MD5、SHA-1,jdk1.5對(duì)上面都提供了支持,在Java中進(jìn)行消息摘要很簡(jiǎn)單, Java.security.MessageDigest提供了一個(gè)簡(jiǎn)易的操作方法:

  /**
  *MessageDigestExample.Java
  *Copyright 2005-2-16
  */
  import Java.security.MessageDigest;
  /**
  *單一的消息摘要算法,不使用密碼.可以用來(lái)對(duì)明文消息(如:密碼)隱藏保存
  */
  public class MessageDigestExample{
  public static void main(String[] args) throws Exception{
  if(args.length!=1){
   System.err.println("Usage:Java MessageDigestExample text");
   System.exit(1);
  }

  byte[] plainText=args[0].getBytes("UTF8");

  //使用getInstance("算法")來(lái)獲得消息摘要,這里使用SHA-1的160位算法
  MessageDigest messageDigest=MessageDigest.getInstance("SHA-1");

  System.out.println(" "+messageDigest.getProvider().getInfo());
  //開始使用算法
  messageDigest.update(plainText);
  System.out.println(" Digest:");
  //輸出算法運(yùn)算結(jié)果
  System.out.println(new String(messageDigest.digest(),"UTF8"));
  }
  }

  還可以通過(guò)消息認(rèn)證碼來(lái)進(jìn)行加密實(shí)現(xiàn),Javax.crypto.Mac提供了一個(gè)解決方案,有興趣者可以參考相關(guān)API文檔,本文只是簡(jiǎn)單介紹什么是摘要算法。

  2)私鑰加密:

  消息摘要只能檢查消息的完整性,但是單向的,對(duì)明文消息并不能加密,要加密明文的消息的話,就要使用其他的算法,要確保機(jī)密性,我們需要使用私鑰密碼術(shù)來(lái)交換私有消息。

  這種最好理解,使用對(duì)稱算法。比如:A用一個(gè)密鑰對(duì)一個(gè)文件加密,而B讀取這個(gè)文件的話,則需要和A一樣的密鑰,雙方共享一個(gè)私鑰(而在web環(huán)境下,私鑰在傳遞時(shí)容易被偵聽):

  使用私鑰加密的話,首先需要一個(gè)密鑰,可用Javax.crypto.KeyGenerator產(chǎn)生一個(gè)密鑰(Java.security.Key),然后傳遞給一個(gè)加密工具(Javax.crypto.Cipher),該工具再使用相應(yīng)的算法來(lái)進(jìn)行加密,主要對(duì)稱算法有:DES(實(shí)際密鑰只用到56位),AES(支持三種密鑰長(zhǎng)度:128、192、256位),通常首先128位,其他的還有DESede等,jdk1.5種也提供了對(duì)對(duì)稱算法的支持,以下例子使用AES算法來(lái)加密:

  /**
  *PrivateExmaple.Java
  *Copyright 2005-2-16
  */
  import Javax.crypto.Cipher;
  import Javax.crypto.KeyGenerator;
  import Java.security.Key;

  /**
  *私

主站蜘蛛池模板: 纯h超级大尺度小黄文 | 吃奶摸下的羞羞漫画 | 麻豆影视在线直播观看免费 | 精品无人区麻豆乱码无限制 | 老头狠狠挺进小莹体内视频 | 国产乱国产乱老熟300部视频 | 中文成人在线视频 | 又硬又粗又大一区二区三区视频 | 野花日本韩国视频免费高清观看 | 欧美一区二区三区不卡免费 | 精品国产精品人妻久久无码五月天 | 老女人与小伙子露脸对白 | 香蕉人人超人人超碰超国产 | 性春院| 99久久99久久精品国产片果冻 | 国产乱人视频在线观看 | 胖老太与人牲交BBWBBW高潮 | 琪琪色在线播放 | 在线观看成年人免费视频 | 不良网站进入窗口软件下载免费 | 丝袜情趣在线资源二区 | 99久久人妻无码精品系列性欧美 | a视频免费看 | 毛片亚洲毛片亚洲毛片 | 一道精品视频一区二区 | 手机看片国产日韩欧美 | 国产精品丰满人妻AV麻豆 | 樱花草在线影视WWW日本动漫 | 国产超嫩一线天在线播放 | 成人毛片100部免费看 | 欧美日韩精品一区二区三区高清视频 | 高清国产在线播放成人 | 风流少妇BBWBBW69视频 | 国产黄a三级三级三级 | 人C交ZZZ0OOZZZ000 热综合一本伊人久久精品 热中文热国产热综合 | 老熟女毛茸茸浓毛 | 欧美性色xo影院69 | 无码乱人伦一区二区亚洲 | old胖老太fat bbw青年 | 欧美人妖12p | 一本道高清到手机在线 |