SM3加密udf

2023-10-28 06:20
文章标签 加密 udf sm3

本文主要是介绍SM3加密udf,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

SM3加密udf

maven

```xml
<dependencies>
    <!-- 配置日志 -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.5</version>
    </dependency>

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.7.12</version>
    </dependency>

    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
    <!--添加Hadoop的依赖-->
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-client</artifactId>
        <version>3.1.1</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.11</version>
        <scope>test</scope>
    </dependency>
    <!--添加hive依赖-->
    <dependency>
        <groupId>org.apache.hive</groupId>
        <artifactId>hive-exec</artifactId>
        <version>3.1.0</version>
    </dependency>

    <!--sm3,sm4加密算法-->
    <dependency>
        <groupId>org.bouncycastle</groupId>
        <artifactId>bcprov-jdk15on</artifactId>
        <version>1.66</version>
    </dependency>
</dependencies>
```

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

这篇关于SM3加密udf的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/291285

相关文章

3.比 HTTP 更安全的 HTTPS(工作原理理解、非对称加密理解、证书理解)

所谓的协议 协议只是一种规则,你不按规则来就无法和目标方进行你的工作 协议说白了只是人定的规则,任何人都可以定协议 我们不需要太了解细节,这些制定和完善协议的人去做的,我们只需要知道协议的一个大概 HTTPS 协议 1、概述 HTTPS(Hypertext Transfer Protocol Secure)是一种安全的超文本传输协议,主要用于在客户端和服务器之间安全地传输数据

ja-netfilter的前世今生和非对称加密的欺骗原理

文章目录 ja-netfilter起源官网插件插件配置文件插件的综合应用更多用法 非对称加密欺骗原理非对称加密和数字证书激活过程和欺骗手段分析代码示例第一步:生成自签名证书脚本第二步:使用自签名证书对产品激活信息进行签名 样例数据样例激活码(注:用于代码演示,直接粘贴到JetBrains 家 IDE 中无法完成激活!不用试,肯定提示无效,无法激活!!)样例power.conf(配合ja-ne

Linux加密框架设计与实现

本文转自网络文章,内容均为非盈利,版权归原作者所有。 转载此文章仅为个人收藏,分享知识,如有侵权,马上删除。 原文作者:原文作者是独孤九贱大佬 原文地址:http://bbs.chinaunix.net/thread-3627341-1-1.html

Android的登陆MD5加密

1:导入代码 public class MD5Util {private static final String TAG = "MD5Util";/**** MD5加码 生成32位md5码*/public static String string2MD5(String inStr) {Log.e(TAG, "string2MD5: -------------------------");Mess

超级 密码加密 解密 源码,支持表情,符号,数字,字母,加密

超级 密码加密 解密 源码,支持表情,符号,数字,字母,加密 可以将表情,动物,水果,表情,手势,猫语,兽语,狗语,爱语,符号,数字,字母,加密和解密 可以将文字、字母、数字、代码、标点符号等内容转换成新的文字形式,通过简单的文字以不同的排列顺序来表达不同的内容 源码截图: https://www.httple.net/152649.html

如何实现加密功能

文章目录 1. 概念介绍2. 方法与功能2.1 基本用法2.2 加密算法 3. 示例代码4. 内容总结 我们在上一章回中介绍了"FlutterCacheManager组件"相关的内容,本章回中将介绍一个加密工具包.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 加密主要是为了保护一些重要数据,我们在实际项目中会用到加密工具,因此在本章回中介绍一个加密工具

详解BitLocker模式及加密数据和解密方法及无法访问解决之道

BitLocker主要有两种工作模式:TPM模式和U盘模式,同时为了实现更高程度的安全,我们还可以同时启用这两种模式。 BitLocker 自动设备加密在全新安装体验 (OOBE) 期间启动。 但是,只有在用户使用 Microsoft 帐户或 Azure Active Directory 帐户登录后,才会启用(提供)保护。 在此之前,保护已暂停,数据不受保护。 使用本地帐户不会启用 BitLoc

加密方式的判断---神器 hash_identifier

加密作为保障数据安全的一种方式,它不是现在才有的,它产生的历史相当久远,它是起源于要追溯于公元前2000年(几个世纪了),虽然它不是现在我们所讲的加密技术(甚至不叫加密),但作为一种加密的概念,确实早在几个世纪前就诞生了。当时埃及人是最先使用特别的象形文字作为信息编码的,随着时间推移,巴比伦、美索不达米亚和希腊文明都开始使用一些方法来保护他们的书面信息。 加密在网络上的作用就是防止有用或私有

RC4加密解密算法123

RC4是一种对称密码算法,它属于对称密码算法中的序列密码(streamcipher,也称为流密码),它是可变密钥长度,面向字节操作的流密码。 RC4是流密码streamcipher中的一种,为序列密码。RC4加密算法是Ron Rivest在1987年设计出的密钥长度可变的加密算法簇。起初该算法是商业机密,直到1994年,它才公诸于众。由于RC4具有算法简单,运算速度快,软硬件实现都

linux下zip加密压缩文件

zip -q -r  -P password zipfile.zip sourcefiles.txt                            #password 是加密密码 zipfile.zip 是生成的压缩文件 sourcefiles.txt 是被压缩的文件   zip [参数] <压缩包> <源文件>   使用zip格式打包文件     -r 递归,将指定目