java DES生成**加密解密
程序员文章站
2022-03-12 20:57:15
...
java DES生成**加密解密
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.codec.binary.Hex;
import org.springframework.stereotype.Component;
@Component
public class DES{
public byte[] bytes;
//生成一个DES**
public String getKey(){
try {
KeyGenerator keyGenerator = KeyGenerator.getInstance("DES");
keyGenerator.init(56);
// 生成一个Key
SecretKey generateKey = keyGenerator.generateKey();
// 转变为字节数组
byte[] encoded = generateKey.getEncoded();
// 生成**字符串
String encodeHexString = Hex.encodeHexString(encoded);
return encodeHexString;
} catch (Exception e) {
e.printStackTrace();
return "**生成错误.";
}
}
//加密
public String encryptor(String str,String Key){
String s=null;
try {
DESKeySpec desKey = new DESKeySpec(Key.getBytes());
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey securekey = keyFactory.generateSecret(desKey);
Cipher cipher = Cipher.getInstance("DES");
cipher.init(Cipher.ENCRYPT_MODE,securekey); //初始化密码器,用** secretKey 进入加密模式
byte[] bytes=cipher.doFinal(str.getBytes()); //加密
s= Base64.encodeBase64String(bytes);
} catch (Exception e) {
e.printStackTrace();
return "加密错误.";
}
return s;
}
//解密
public String decryptor(String buff,String Key){
String s=null;
try {
DESKeySpec desKey = new DESKeySpec(Key.getBytes());
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey securekey = keyFactory.generateSecret(desKey);
Cipher cipher = Cipher.getInstance("DES");
cipher.init(Cipher.DECRYPT_MODE,securekey);
byte[] responseByte=cipher.doFinal(Base64.decodeBase64(buff));
s=new String(responseByte);
return s;
} catch (Exception e) {
e.printStackTrace();
return "解密错误.";
}
}
}