最近在对接别人的接口时,对方要求敏感信息传输必须进行3DES加密,并且很贴心提供了一个java Demo。可是我主力后端语言是PHP——世界上最好的语言,java处于勉强看懂的水平,要实现需求,只能踩bug过河了。万幸的是,费了大半天时间,终于解决了。国际惯例,先祭上java实现:
import java.io.UnsupportedEncodingException;
import java.security.InvalidAlgorithmParameterException;
import java.security.InvalidKeyException;
import java.security.Key;
import java.security.NoSuchAlgorithmException;
import java.security.spec.InvalidKeySpecException;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESedeKeySpec;
import javax.crypto.spec.IvParameterSpec;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.codec.digest.DigestUtils;
/**
* 1) 提供了 TripleDES、AES、SHA1、MD5、BASE64等加解密、编解码工具;
* 2) 可以在静态导入(import static)这个类,这样用起来更方便;
*/
public final class Crypto {
public static String code = "UTF-8";
public static final