项目中遇到需求,接口参数要求3DES加密。查了一下资料,得到如下代码:
可以去http://tool.chacuo.net/crypt3des/ 对比验证
public class DESUtil {
// 算法名称
public static final String KEY_ALGORITHM = "desede";
// 算法名称/加密模式/填充方式
public static final String CIPHER_ALGORITHM = "DESede/ECB/PKCS7Padding";
public static final String CHARSET_UTF8 = "UTF-8";
/**
* 加密
*/
public static String encrypt3DES(String key, String msg) {
try {
// 生成密钥
byte[] bytes = key.getBytes(CHARSET_UTF8);
System.out.println("密钥字节长度:" + bytes.length);
SecretKey deskey = new SecretKeySpec(bytes, "DESede");
// 加密工具
Cipher c1 = Cipher.getInstance(CIPHER_ALGORITHM);
// 加密
c1.init(Cipher.ENCRYPT_MODE, deskey);
b