Java的对称加密
Java的对称加密##
3DES加密
public static void createToken(String src) {
try {
// 生成KEY
KeyGenerator keyGenerator = KeyGenerator.getInstance("DESede");
keyGenerator.init(new SecureRandom());
SecretKey secretKey = keyGenerator.generateKey();
byte[] bytesKey = secretKey.getEncoded();
// KEY转换
DESedeKeySpec deKey = new DESedeKeySpec(bytesKey);
SecretKeyFactory factory = SecretKeyFactory.getInstance("DESede");
SecretKey convertKey = factory.generateSecret(deKey);
//加密
Cipher cipher = Cipher.getInstance("DESede/ECB/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, convertKey);
byte[] result = cipher.doFinal(src.getBytes());
System.out.println(HexUtils.toHexString(result));
//解密
cipher.init(Cipher.DECRYPT_MODE, convertKey);
byte[] results = cipher.doFinal(result);
System.out.println(new String(results));
} catch (Exception e) {
e.printStackTrace();
}
}
AES加密
public static void crateAes(String src) {
try {
// 生成Key
KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
keyGenerator.init(128);
SecretKey genKey = keyGenerator.generateKey();
byte[] keyBytes = genKey.getEncoded();
//转换key
SecretKeySpec key = new SecretKeySpec(keyBytes, "AES");
//加密
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, key);
byte[] result = cipher.doFinal(src.getBytes());
System.out.println("aes: "+ Base64Utils.encodeToString(result));
//解密
cipher.init(Cipher.DECRYPT_MODE, key);
byte[] result2 = cipher.doFinal(result);
System.out.println(new String(result2));
} catch (Exception e) {
e.printStackTrace();
}
}

浙公网安备 33010602011771号