https://blog.csdn.net/jiangxuexuanshuang/article/details/88002289
示例代码:
import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.DESKeySpec; import java.security.SecureRandom;
import java.util.Base64; /** * @Description: 对参数进行DES和Base64加密 */ public String encryptParam(String sourceParam, String key) throws Exception { byte[] byteContent = sourceParam.getBytes("UTF-8"); SecureRandom random = new SecureRandom(); 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, random); return Base64.getEncoder().encodeToString(cipher.doFinal(byteContent)); }
//对base64以及DES加密后数据进行解密 public String decryptParam(String sourceParam, String key) throws Exception { byte[] byteContent = Base64.getDecoder().decode(sourceParam); SecureRandom random = new SecureRandom(); 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, random); return new String(cipher.doFinal(byteContent), "UTF-8"); }
测试加解密
String encryPlatArchiveNo = null; //参数加密 String decryPlatArchiveNo = null; //参数加密 try { encryPlatArchiveNo = encryptParam(platArchiveNo, "ABC123ABC123ABCD"); decryPlatArchiveNo= decryptParam(encryPlatArchiveNo, "ABC123ABC123ABCD"); } catch (Exception e) { }