?? encrypt.java
字號:
?package myitem.encrypt;
/*數據加密、解密*/
import java.security.*;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
/*字符串加密工具集合*/
public class Encrypt{
private static final String PASSWORD_CRYPT_KEY = "webkaidi";
private final static String DES = "DES";
/*加密*/
//參數說明:數據源(進行加密的數據),密鑰(長度必須是8的倍數)
public static byte[] encrypt(byte[] source, byte[] key)throws Exception{
//DES算法要求有一個可信任的隨機數源
SecureRandom sr = new SecureRandom();
//從原始密匙數據創建DESKeySpec對象
DESKeySpec dks = new DESKeySpec(key);
//創建一個密匙工廠
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES);
//利用密鑰工廠把DESKeySpec轉換成一個SecretKey對象
SecretKey securekey = keyFactory.generateSecret(dks);
//Cipher對象實際完成加密操作
Cipher cipher = Cipher.getInstance(DES);
//用密匙初始化Cipher對象
cipher.init(Cipher.ENCRYPT_MODE, securekey, sr);
//現在,獲取數據并加密
//正式執行加密操作
return cipher.doFinal(source);
}
/*加密*/
//參數說明:數據源(加密的數據),密鑰(長度必須是8的倍數)
public static byte[] decrypt(byte[] source, byte[] key)throws Exception{
//DES算法要求有一個可信任的隨機數源
SecureRandom sr = new SecureRandom();
//從原始密匙數據創建DESKeySpec對象
DESKeySpec dks = new DESKeySpec(key);
//創建一個密匙工廠
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES);
//利用密鑰工廠把DESKeySpec轉換成一個SecretKey對象
SecretKey securekey = keyFactory.generateSecret(dks);
//Cipher對象實際完成解密操作
Cipher cipher = Cipher.getInstance(DES);
//用密匙初始化Cipher對象
cipher.init(Cipher.DECRYPT_MODE, securekey, sr);
//現在,獲取數據并解密
// 正式執行解密操作
return cipher.doFinal(source);
}
/*數據加密*/
//參數說明:需加密的字符串
public final static String encrypt(String str){
try{
return ByteTHex(encrypt(str.getBytes(),PASSWORD_CRYPT_KEY.getBytes()));
}catch(Exception e){
}
return null;
}
/*數據加密*/
//參數說明:需解密的字符串
public final static String decrypt(String str){
try{
return new String(decrypt(HexTByte(str.getBytes()),
PASSWORD_CRYPT_KEY.getBytes()));
}catch(Exception e){
}
return null;
}
/*二進制轉換為字符串*/
//參數說明:需要進行轉換的二進制
public static String ByteTHex(byte[] b){
String hs = "";
String stmp = "";
for(int n=0; n<b.length; n++){
stmp = (java.lang.Integer.toHexString(b[n]&0XFF));
if(stmp.length() == 1){
hs = hs+"0"+stmp;
}else{
hs = hs+stmp;
}
}
return hs.toUpperCase();
}
public static byte[] HexTByte(byte[] b){
if((b.length%2)!=0){
}
byte[] Byte = new byte[b.length/2];
for(int n=0; n<b.length; n+=2){
String item = new String(b,n,2);
Byte[n/2] = (byte)Integer.parseInt(item,16);
}
return Byte;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -