|
本文主要談一下密碼學(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;
/**
*私
主站蜘蛛池模板:
宿舍BL 纯肉各种PLAY H
|
永久免费观看视频
|
久草在线新是免费视频
|
人人艹人人|
欧美wwwvideos在线观看
|
扒开女人下面使劲桶动态图
|
久久婷婷色一区二区三区
|
国产在线aaa片一区二区99
|
午夜婷婷精品午夜无码A片影院
|
伊人久久五月丁婷婷
|
韩国免费啪啪漫画无遮拦健身教练
|
免费A级毛片无码无遮挡内射
|
久99久热只有精品国产99
|
亚洲国产在线视频中文字
|
久久99r66热这里有精品
|
0855福利|
国产精品综合AV一区二区国产馆
|
久久久久综合网
|
亚洲专区中文字幕视频专区
|
高清欧美性猛交xxxx黑人猛交
|
寂寞夜晚在线视频观看
|
高清无码中文字幕影片
|
快播最新电影网站
|
伊人久99久女女视频精品免
|
娇小亚裔被两个黑人
|
亚洲第一综合天堂另类专
|
蜜芽在线影片
|
久久国产乱子伦精品免费M
久久国产露脸老熟女熟69
|
长泽梓黑人初解禁bdd07
|
鸭子玩富婆流白浆视频
|
天天看片视频免费观看
|
青青草A在在观免费线观看
青青草AV国产精品
青青草 久久久
|
国产亚洲精品久久久久苍井松
|
人妻满熟妇AV无码区国产
|
成人免费在线
|
97国产精品人妻无码免费
|
国产精品爽黄69天堂A片
|
午夜熟女插插XX免费视频
|
人体内射精一区二区三区
|
免费的黄直播
|
国产午夜精品美女免费大片
|