kettle传输数据如何加密

1949idc 2年前 (2024-09-13) 阅读数 433 #智能运维

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 + "毫秒");

}

版权声明

本文内容由互联网用户自发贡献,该文观点仅代表作者本人
本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

© 2010 首途云安 & 厦门硕顿信息技术有限公司 & 闽ICP备11016866号  增值电信业务经营许可证:B1-20203020 地址:福建厦门思明区嘉禾路297号1806
高新技术企业
软件产品证书
计算机软件著作权
ISO认证
国家3A企业