java使用ASE128对kettle加密传输数据,具体方法如下:package com;import javax.crypto.Cipher;import javax.crypto.spec.IvParameterSpec;import
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 + "毫秒");
}
--结束END--
本文标题: kettle传输数据如何加密
本文链接: https://www.lsjlt.com/news/115006.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-12
2024-05-12
2024-05-12
2024-05-12
2024-05-12
2024-05-12
2024-05-12
2024-05-12
2024-05-12
2024-05-12
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0