在Cassandra UDF中使用javax.crypto API时出错

时间:2018-11-02 11:22:39

标签: cassandra

我用Java代码编写了一个Cassandra UDF,用于加密数据。为此,我使用了javax.crypto.Cipherjavax.crypto.spec.SecretKeySpec

由于出现以下错误,我无法创建UDF:

  

InvalidRequest:来自服务器的错误:代码= 2200 [Invalid query] message =“ Java源代码编译失败:
  第1行:javax.crypto.spec.SecretKeySpec无法解析为类型
  第1行:javax.crypto.spec.SecretKeySpec无法解析为类型
  第1行:javax.crypto.Cipher无法解析为类型
  第1行:javax.crypto.Cipher无法解析为类型
  第1行:javax.crypto.Cipher.ENCRYPT_MODE无法解析为类型

    create function encrypt("val" text)
    returns null on null input 
    returns text
    language java as
    '
    String strData="";
    javax.crypto.spec.SecretKeySpec skeyspec=new 
    javax.crypto.spec.SecretKeySpec("abc".getBytes(),"Blowfish");
    javax.crypto.Cipher cipher=javax.crypto.Cipher.getInstance("Blowfish");
    cipher.init(javax.crypto.Cipher.ENCRYPT_MODE,skeyspec);
    byte[] encrypted=cipher.doFinal(val.getBytes());
    strData=new String(encrypted);
    return strData;
    ';

0 个答案:

没有答案