• SM3加密udf


    SM3加密udf

    maven

    ```xml

       
       
            org.slf4j
            slf4j-api
            1.7.5
       

       
            org.slf4j
            slf4j-log4j12
            1.7.12
       

       
            log4j
            log4j
            1.2.17
       

       
       
            org.apache.hadoop
            hadoop-client
            3.1.1
       

       
            junit
            junit
            4.11
            test
       

       
       
            org.apache.hive
            hive-exec
            3.1.0
       

       
       
            org.bouncycastle
            bcprov-jdk15on
            1.66
       


    ```

    java 代码


    ```java
    import org.apache.hadoop.hive.ql.exec.UDF;
    import org.bouncycastle.crypto.digests.SM3Digest;
    import org.bouncycastle.pqc.math.linearalgebra.ByteUtils;

    import java.io.UnsupportedEncodingException;

    public class SM3Encrypt extends UDF {
        public String evaluate(String paramStr) throws Exception {
            String resultHexString = "";
            try {
                // 将字符串转换成byte数组
                byte[] srcData = paramStr.getBytes("UTF-8");
                // 调用SM3加密
                byte[] hash = sm3Encrypt(srcData);
                // 将返回的加密字节数组转换成16进制字符串
                resultHexString = ByteUtils.toHexString(hash);
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
            return resultHexString;
        }
        public static byte[] sm3Encrypt(byte[] srcData) {
            SM3Digest digest = new SM3Digest();
            digest.update(srcData, 0, srcData.length);
            byte[] hash = new byte[digest.getDigestSize()];
            digest.doFinal(hash, 0);
            return hash;

        }
    }
    ```

     注册udf

    ```shell
    #1.上传jar包hiveSM3UDF-1.0-SNAPSHOT.jar到hdfs中/{上传目录}/
    #2.hive中创建函数,(多个hiveserver2都需要重启)com.xxx.udf是包名
    create  function  hiveSM3Encrypt as 'com.xxx.udf.SM3Encrypt' using jar 'hdfs:/{上传目录}/hiveSM3UDF-1.0-SNAPSHOT.jar';
    #3.使用
    select hiveSM3Encrypt(手机号) from table_name
    ```

  • 相关阅读:
    证券行业超融合架构方案设计
    线性代数 --- 特征值与特征向量(下)
    高NA (数值孔径)物镜的分析
    鲜花销售小程序|基于微信小程序的鲜花销售系统设计与实现(源码+数据库+文档)
    无人驾驶:高精地图与定位
    四川思维跳动商务信息咨询有限公司是真的吗?
    面试题总结
    安装cuda和cudnn之后torch.cuda_is_available()为False
    “第五十二天”
    DGIOT基本功能介绍——组态编辑配置
  • 原文地址:https://blog.csdn.net/jzy3711/article/details/134071901