資源簡介
本系統是基于java的文件加密傳輸系統,采用類PGP的思想,對傳輸的文件進行加密,簽名,計算摘要等。
代碼片段和文件信息
package?org.transfer.secret;
import?java.io.BufferedOutputStream;
import?java.io.File;
import?java.io.FileOutputStream;
import?java.io.RandomAccessFile;
import?org.transfer.util.Log;
public?class?DecryptRecevieFile?{
private?File?recevieFile;
private?RandomAccessFile?randomAccessFile?=?null;
private?BufferedOutputStream?bos?=?null;
private?String?publicKeyPath;
private?String?savePath;
private?byte[]?readByte?=?new?byte[1024*10];
public?DecryptRecevieFile(File?recevieFileString?publicKeyPathString?savePath){
this.recevieFile?=?recevieFile;
this.publicKeyPath?=?publicKeyPath;
this.savePath?=?savePath;
}
public?boolean?getEnFileByDes(){
try{
File?temp?=?new?File(“recevie/“+System.currentTimeMillis()+“_“+recevieFile.getName());
bos?=?new?BufferedOutputStream(new?FileOutputStream(temp));
randomAccessFile?=?new?RandomAccessFile(recevieFile“rws“);
long?sessionKeyLength?=?randomAccessFile.readLong();
byte[]?recevie?=?new?byte[(int)sessionKeyLength];
randomAccessFile.read(recevie?0?recevie.length);
String?sessionKeyEn?=?new?String(recevie);
String?sessionKey?=??RSA.decrypt(sessionKeyEn?new?File(“myselfKey/private_key.dat“));
Log.print(“get?Session?key?sessionkey?=?“+sessionKey);
int?readLength?=?0;
????????????while((readLength?=?randomAccessFile.read(readByte))>0){
???????????? bos.write(readByte0readLength);
????????????????bos.flush();
????????????}
????????????bos.close();
????????????randomAccessFile.close();
????????????recevieFile.delete();
????????????Log.print(“get?Temp?filefile?length?=?“+temp.length());
????????????
????????????String?newFileName?=?DES.desFile(temp?sessionKey);
????????????Log.print(“decrypt?the?file?successfully“);
????????????temp.delete();
????????????File?M?=?new?File(newFileName);
????????????File?reallyFile?=?new?File(savePath+recevieFile.getName());?
????????????bos?=?new?BufferedOutputStream(new?FileOutputStream(reallyFile));
randomAccessFile?=?new?RandomAccessFile(M“rws“);
long?md5StringLength?=?randomAccessFile.readLong();
Log.print(“md5?length?=?“+md5StringLength);
byte?[]?md5Byte?=?new?byte[(int)md5StringLength];
randomAccessFile.read(md5Byte?0?md5Byte.length);
byte[]?oldMD5Value?=?RSA.decryptByPublicKey(md5Byte?new?File(publicKeyPath));
String?md5Str?=?new?String(oldMD5Value);
Log.print(“new?md5?=“+new?String(md5Str));
int?length?=?0;
while((length?=?randomAccessFile.read(readByte))>0){
bos.write(readByte?0?length);
bos.flush();
}
????????????bos.close();
????????????randomAccessFile.close();
????????????M.delete();
????????????String?newMD5Value?=?MD5.computeFile(reallyFile);
????????????if(md5Str.equals(newMD5Value)){
???????????? return?true;
????????????}
????????????return?false;
}catch(Exception?e){
Log.print(e.getMessage());
return?false;
}
}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????291??2009-11-27?21:05??SecTransfer\.classpath
?????文件?????????66??2009-11-27?21:03??SecTransfer\.myumldata
?????文件????????387??2009-11-27?20:47??SecTransfer\.project
?????文件????????629??2009-11-27?21:02??SecTransfer\.settings\org.eclipse.jdt.core.prefs
?????文件?????????99??2009-11-27?21:02??SecTransfer\.settings\org.eclipse.jdt.ui.prefs
?????文件?????127076??2009-11-29?14:22??SecTransfer\audio\Begin.wav
?????文件??????43402??2009-11-29?14:22??SecTransfer\audio\dead.wav
?????文件??????54958??2009-11-29?14:22??SecTransfer\audio\gamewin.wav
?????文件???????3362??2009-11-29?14:22??SecTransfer\audio\go.wav
?????文件?????????39??2009-11-29?18:25??SecTransfer\conf.txt
?????文件??????11022??2009-11-20?15:18??SecTransfer\icon\icon.png
????..A.SH.??????9728??2009-11-28?21:05??SecTransfer\icon\Thumbs.db
?????文件??????11001??2009-12-06?22:53??SecTransfer\log\200912062253.rar
?????文件???????5364??2010-01-22?15:27??SecTransfer\log\log.txt
?????文件????????892??2009-12-05?23:07??SecTransfer\myselfKey\private_key.dat
?????文件????????419??2009-12-05?23:07??SecTransfer\myselfKey\public_key.dat
?????文件???????3547??2009-12-07?11:31??SecTransfer\org\transfer\secret\DecryptRecevieFile.class
?????文件???????2959??2009-12-05?23:19??SecTransfer\org\transfer\secret\DecryptRecevieFile.java
?????文件???????3752??2009-12-07?11:31??SecTransfer\org\transfer\secret\DES.class
?????文件???????2762??2009-12-05?17:51??SecTransfer\org\transfer\secret\DES.java
?????文件???????4283??2009-12-07?11:31??SecTransfer\org\transfer\secret\EncryptSendFile.class
?????文件???????3422??2009-12-05?23:15??SecTransfer\org\transfer\secret\EncryptSendFile.java
?????文件???????2379??2009-12-07?11:31??SecTransfer\org\transfer\secret\MD5.class
?????文件???????1437??2009-12-05?17:52??SecTransfer\org\transfer\secret\MD5.java
?????文件???????6037??2009-12-07?11:31??SecTransfer\org\transfer\secret\RSA.class
?????文件???????6080??2009-12-04?22:42??SecTransfer\org\transfer\secret\RSA.java
?????文件???????5872??2009-12-07?11:31??SecTransfer\org\transfer\thread\RecevieThread.class
?????文件???????4946??2009-12-06?22:11??SecTransfer\org\transfer\thread\RecevieThread.java
?????文件???????5747??2009-12-07?11:31??SecTransfer\org\transfer\thread\SendThread.class
?????文件???????4980??2009-12-06?22:53??SecTransfer\org\transfer\thread\SendThread.java
............此處省略60個文件信息
- 上一篇:超級好的純jsp寫的聊天室
- 下一篇:java 人事管理系統 課程設計
評論
共有 條評論