java使用ASE128对kettle加密传输数据,具体方法如下:
package com;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
public class AES128 {
private static String sKey = “6d782000a3625132”;
private static String ivParameter = “66692k0da001d091”;
private static AES128 instance = null;
private AES128() {
}
public static AES128 getInstance() {
if (instance == null)
instance = new AES128();
return instance;
}
// 加密
public static String encrypt(String sSrc, String encodingFormat,String sKey, String ivParameter) throws Exception {
Cipher cipher = Cipher.getInstance(“AES/CBC/PKCS5Padding”);
byte[] raw = sKey.getBytes();
SecretKeySpec skeySpec = new SecretKeySpec(raw, “AES”);
// 使用CBC模式,需要一个向量iv,可增加加密算法的强度
IvParameterSpec iv = new IvParameterSpec(ivParameter.getBytes());
cipher.init(Cipher.ENCRYPT_MODE, skeySpec, iv);
byte[] encrypted = cipher.doFinal(sSrc.getBytes(encodingFormat));
// 此处使用BASE64做转码。
return new BASE64Encoder().encode(encrypted);
}
public static void main(String[] args) throws Exception {
// 需要加密的字串
String cSrc = “12026198505162431”;
System.out.println(“加密前的字串是:” + cSrc);
// 加密
long lStart = System.currentTimeMillis();
String enString = AES128.getInstance().encrypt(cSrc, “utf-8”, sKey,ivParameter);
System.out.println(“加密后的字串是:” + enString);
long lUseTime = System.currentTimeMillis() – lStart;
System.out.println(“加密耗时:” + lUseTime + “毫秒”);
}
了解更多kettle传输数据如何加密相关的解答,就上多想派(www.duoxiangpai.com)。
本文章由用户天奇生活分享,版权归原作者,如侵犯,请联系(点这里联系),经核实,我们将第一时间删除。如若转载,请注明出处:https://www.duoxiangpai.com/66363.html