📄 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 + -