BouncyCastle JCE實踐(四) (轉)
對稱的實現
加密可提高終端和通訊的物理,有三種方法加密傳輸資料:
* 連結加密:在網路節點間加密,在節點間傳輸加密,傳送到節點後,不同節點對間用不同密碼.
* 節點加密:與連結加密類似,不同的只是當資料在節點間傳送時,不用明碼格式傳送,而是用特殊 的加密進行解密和重加密,這種專用硬體通常旋轉在安全保險箱中.
* 首尾加密:對進入網路的資料加密,然後待資料從網路傳送出後再進行解密.網路本身並不會知 道正在傳送的資料是加密資料.這一方法的優點是,網路上的每個(通常是每個機器的一個 使用者)可有不同的加密關鍵詞,並且網路本身不需增添任何專門的加密裝置.缺點是每個必 須有一個加密裝置和相應的(管理加密關鍵詞)或者每個系統必須自己完成加密工作(當數 據傳輸率是按兆位/秒的單位計算時,加密任務的計算量是很大的)
本文采用首尾加密,程式碼如下:
//從金鑰中讀金鑰
SecretKey key=null;
try
{
//從金鑰檔案讀取金鑰
InputStream keyFile=new ObjectInputStream(
new FileInputStream("c:安全檔案"+misClass.username+"對稱對稱金鑰yhb.des"));
key=(SecretKey)keyFile.readObject();
keyFile.close();
}
catch(FileNotFoundException ey1)
{
System.out.println("Error when read keyFile");
System.exit(0);
}
catch(Exception ey2)
{
System.out.println("error when read the keyFile");
System.exit(0);
}
//用key產生Cipher
Cipher cipher=null;
try
{
//加密要用Cipher來實現
cipher=Cipher.getInstance("DES");
//設定加密
cipher.init(Cipher.ENCRYPT_MODE,key);
}catch(Exception ey3)
{
System.out.println("Error when create the cipher");
System.exit(0);
}
//從對話方塊中取得要加密的檔案
File file=new File(dirstring,string1);
String filename=file.getName();
//讀入並加密檔案
try
{
//輸入流
BufferedInputStream in=new BufferedInputStream(new FileInputStream(file));
//輸出流
CipherOutputStream out=new CipherOutputStream(new BufferedOutputStream(
new FileOutputStream("c:安全檔案檔案"+filename+".yhb")),cipher);
int i;
do{
i=in.read();
if(i!=-1) out.write(i);
}while(i!=-1);
in.close();
out.close();
}
catch(Exception ey5)
{
System.out.println("Error when encrypt the file");
System.exit(0);
}
作者又名HongSoft,研究領域:1)基於工作流的BPM系統研究2)基於的資訊保安技術.歡迎和大家討論JAVA相關各方面問題 to:hongbosoftware@163.com">hongbosoftware@163.com
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10794571/viewspace-974791/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- BouncyCastle JCE實踐(五) (轉)AST
- BouncyCastle JCE實踐(六) (轉)AST
- VC++ ADO開發實踐之四 (轉)C++
- 實驗四 CTF實踐
- Windows DHCP最佳實踐(四)Windows
- Docker入門實踐(四)Docker
- WebX實踐指南_WebXRPC(四)WebRPC
- CoreData實踐(四)——查詢資料
- 轉轉OLAP自助分析實踐
- 實踐法(轉載)
- 【機器學習PAI實踐四】如何實現金融風控機器學習AI
- 大型網站的 HTTPS 實踐(四):協議層以外的實踐網站HTTP協議
- 大型網站的 HTTPS 實踐(四)——協議層以外的實踐網站HTTP協議
- 20211105BouncyCastleAST
- 直播轉點播實踐
- [轉]UNIX find命令實踐
- RMAN恢復實踐(轉)
- WebSocket原理與實踐(四)--生成資料幀Web
- STL程式設計實踐四:簡化輸入和提高可維護性 (轉)程式設計
- 四則運算實現 (轉)
- 軟體工程實踐(一) (轉)軟體工程
- 軟體工程實踐(二) (轉)軟體工程
- VC列印實踐淺談 (轉)
- 【軟體工程理論與實踐】Homework(四.1)軟體工程
- VPC最佳實踐(四):VPC中的訪問控制
- 關於 vue 全家桶的四個 “最佳實踐”Vue
- 前後端分離的思考與實踐(四)後端
- PHP實踐之路(四)PHP中常量和變數PHP變數
- 轉轉上門履約的LBS實踐
- Net8 使用BouncyCastle 生成自簽名證書AST
- C 程式設計最佳實踐(轉)程式設計
- 產品線實踐先導 (轉)
- 實踐中的增量計劃 (轉)
- lilo--實踐篇(FAQ) (轉)
- 轉轉倉儲自動化系統實踐
- Docker進階與實踐之四:Docker映象倉庫Docker
- 四個保護資料安全的技術實踐
- 四軸飛行器實踐教程(內部資料)