• 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
    ```

  • 相关阅读:
    AQS源码探究之竞争锁资源
    从 Hackathon 战队到创业公司,和开发者们聊聊真实世界 AI Apps 的基础设施丨活动预告
    Kotlin(十一)Kotlin中的Object关键字
    git 更换远程地址的方法
    向量时钟的本质
    idea 中Maven项目转Gradle项目
    中秋节快乐--祝诸佬们今后月来月靓
    C#小知识
    基于PHP+MySQL的企业宣传展示网
    Pytorch 缓解过拟合和网络退化
  • 原文地址:https://blog.csdn.net/jzy3711/article/details/134071901