91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 6KB
    文件類型: .java
    金幣: 1
    下載: 0 次
    發布日期: 2021-05-14
  • 語言: Java
  • 標簽: 文件加密??

資源簡介

des對文件加密,生成.tdes文件、解密后生成解密文件。本方法是純利用二進制流對文件的加解密、

資源截圖

代碼片段和文件信息

package?com.ricorsoft.safe.common;

import?java.io.File;
import?java.io.FileInputStream;
import?java.io.FileOutputStream;
import?java.io.IOException;

import?javax.crypto.Cipher;
import?javax.crypto.SecretKey;
import?javax.crypto.SecretKeyFactory;
import?javax.crypto.spec.DESKeySpec;
import?javax.swing.JFileChooser;
import?javax.swing.JOptionPane;

public?class?Demo1?{
public?static?void?main(String[]?args)?throws?IOException?{
//?需要加密的文件
File?file?=?new?File(“d:/都站起來.xls“);
//?new?Demo1().encrypt(file.getAbsoluteFile()
//?“83049E80D03B7F706DE085C2EA3EAD078CB69B2637455B4F“);
//?加密后的文件
File?fileEnCase?=?new?File(“d:/都站起來.xls.tdes“);
//?解密后的文件名
new?Demo1().decrypt(fileEnCase
“83049E80D03B7F706DE085C2EA3EAD078CB69B2637455B4F“);
String?filePath?=?fileEnCase.getParent();
String?fileName?=?fileEnCase.getName();
String?name?=?fileName.substring(0?fileName.lastIndexOf(“.“));
String?newFileName?=?fileEnCase.getParent()?+?name;
}

//?--------------------------------------------------加密-------------------------------
/**
?*?加密函數?輸入:?要加密的文件,密碼(由0-F組成,共48個字符,表示3個8位的密碼)如:
?*?AD67EA2F3BE6E5ADD368DFE03120B5DF92A8FD8FEC2F0746?其中:?AD67EA2F3BE6E5AD
?*?DES密碼一?D368DFE03120B5DF?DES密碼二?92A8FD8FEC2F0746?DES密碼三?輸出:
?*?對輸入的文件加密后,保存到同一文件夾下增加了“.tdes“擴展名的文件中。
?*/
private?void?encrypt(File?fileIn?String?sKey)?{
try?{
if?(sKey.length()?==?48)?{
byte[]?bytK1?=?getKeyByStr(sKey.substring(0?16));
byte[]?bytK2?=?getKeyByStr(sKey.substring(16?32));
byte[]?bytK3?=?getKeyByStr(sKey.substring(32?48));
FileInputStream?fis?=?new?FileInputStream(fileIn);
byte[]?bytIn?=?new?byte[(int)?fileIn.length()];
for?(int?i?=?0;?i? bytIn[i]?=?(byte)?fis.read();
}
//?加密
byte[]?bytOut?=?encryptByDES(encryptByDES(encryptByDES(bytIn
bytK1)?bytK2)?bytK3);
String?fileOut?=?fileIn.getPath()?+?“.tdes“;
FileOutputStream?fos?=?new?FileOutputStream(fileOut);
for?(int?i?=?0;?i? fos.write((int)?bytOut[i]);
}
fos.close();
System.out.println(“加密成功!“);
}?else
System.out.println(“密碼長度必須等于48!“);
}?catch?(Exception?e)?{
e.printStackTrace();
}
}

/**
?*?用DES方法解密輸入的字節?bytKey需為8字節長,是解密的密碼
?*/
private?byte[]?decryptByDES(byte[]?bytE?byte[]?bytKey)?throws?Exception?{
DESKeySpec?desKS?=?new?DESKeySpec(bytKey);
SecretKeyFactory?skf?=?SecretKeyFactory.getInstance(“DES“);
SecretKey?sk?=?skf.generateSecret(desKS);
Cipher?cip?=?Cipher.getInstance(“DES“);
cip.init(Cipher.DECRYPT_MODE?sk);
return?cip.doFinal(bytE);
}

/**
?*?用DES方法加密輸入的字節?bytKey需為8字節長,是加密的密碼
?*/
private?byte[]?encryptByDES(byte[]?bytP?byte[]?bytKey)?throws?Exception?{
DESKeySpec?desKS?=?new?DESKeySpec(bytKey);
SecretKeyFactory?skf?=?SecretKeyFactory.getInstance(“DES“);
SecretKey?sk?=?skf.generateSecret(desKS);
Cipher?cip?=?Cipher.getInstance(“DES“);
cip.init

評論

共有 條評論