Talend自定义功能

时间:2017-06-22 11:25:30

标签: talend

我如何使用tmap应用自定义函数,或者可以使用tsystem。我想用我的自定义函数动态解密加密列。我可以将所有加密值写入文件,然后从文件写入tsystem或tmap,并解密值。最好的方法是什么?

2 个答案:

答案 0 :(得分:3)

使用Java例程。你可以创建java方法并在任何地方调用。例如

public static String decrypt(String encryptStr){
                    String decrypted = null;
        try {

            while(encryptStr != null){
                try
                {

                    String key = "Bar12345Bar12345"; // 128 bit key
                    // Create key and cipher
                    Key aesKey = new SecretKeySpec(key.getBytes(), "AES");
                    Cipher cipher = Cipher.getInstance("AES");
                    // encrypt the text
                    cipher.init(Cipher.ENCRYPT_MODE, aesKey);

                    // for decryption
                    byte[] bb = new byte[encryptStr.length()];
                    for (int i=0; i<encryptStr.length(); i++) {
                        bb[i] = (byte) encryptStr.charAt(i);
                    }

                    // decrypt the text
                    cipher.init(Cipher.DECRYPT_MODE, aesKey);
                    decrypted = new String(cipher.doFinal(bb));

                }
                catch(Exception e)
                {
                    e.printStackTrace();
                }
            }
        } catch (IOException ex) {
            Logger.getLogger(Snake_H.class.getName()).log(Level.SEVERE, null, ex);
        }
        return decrypted;
    }

对于加密,请遵循相同的方法。你可以在 tmap
之类的任何地方调用这个java方法 参考Talend Routines

答案 1 :(得分:1)

如果您正在谈论例程,只需在可以放置一些Java代码的地方调用所需的方法 例如,作为输出流的表达式,您可以使用以下内容:
yourClass.yourMethod(...)
希望这会有所帮助。