银联商务PHP和JAVA实现3DES加密
請(qǐng)注意 : key 必須 24位,PHP7.1或者以上用,openssl_encrypt 中的 method :DES-EDE3 ,對(duì)應(yīng)Java中的DESede/ECB
Java用法
public static String byte2hex(byte[] b) {
String hs=“”;
String stmp=“”;
for (int n=0;n
stmp=(java.lang.Integer.toHexString(b[n] & 0XFF));
if (stmp.length()==1) hs=hs+“0”+stmp;
else hs=hs+stmp;
if (n
}
return hs.toUpperCase();
}
public static void main(String[] args) throws NoSuchPaddingException, NoSuchAlgorithmException, UnsupportedEncodingException, InvalidKeyException, BadPaddingException, IllegalBlockSizeException {
String txt=“66666”;
String key=“123456781234567812345678”; // 必須24位
//加密
String keyStr = key;
byte key_byte[] = keyStr.getBytes();// 3DES 24 bytes key
SecretKey k = new SecretKeySpec(key_byte, “DESede”);
javax.crypto.Cipher cipher = javax.crypto.Cipher.getInstance(“DESede”);
cipher.init(javax.crypto.Cipher.ENCRYPT_MODE, k);
byte[] b = cipher.doFinal(txt.getBytes(“utf-8”));
String enc_txt = byte2hex(b);
System.out.println(enc_txt);
}
PHP用法
$miwen = openssl_encrypt(‘66666’, ‘DES-EDE3’, ‘123456781234567812345678’,OPENSSL_RAW_DATA);
var_dump(bin2hex($miwen));
總結(jié)
以上是生活随笔為你收集整理的银联商务PHP和JAVA实现3DES加密的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 冯扬文:波罗的海干散货指数(BDI)介绍
- 下一篇: 42岁程序员面试,java书籍入门下载