SM3 Sm4加密算法

news/2024/11/30 1:31:17/

一、概述

1、SM3是一种分组消息摘要算法,用于生成数据的哈希值(消息摘要),而非直接加密数据。

1.1、 应用场景
数据完整性校验:验证数据在传输或存储过程中是否被篡改。
数字签名:与SM2等算法结合使用,在数字签名过程中生成签名数据的哈希值。
网络安全:在网络通信中,用于验证消息的完整性和真实性。

2、SM4加密与SM2虽然都是SM系列,但是他们的机制却不同,因为他是对称加密算法,意味着他和AES一样不区分公钥和密钥,而是同一套密钥,但是密钥长度他是固定的128位,不像AES那样有多种密钥长度;

2.1、 应用场景

数据加密:对敏感数据进行加密保护,防止数据泄露。 

物联网安全:在物联网环境中,保护设备间通信数据的隐私安全。

金融支付:在金融支付领域,确保交易信息的安全传输和存储。

二、SpringBoot 实现 加密

1、 pom

        <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.83</version></dependency><dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk15on</artifactId><version>1.70</version></dependency><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.11</version> <!-- 请使用最新版本 --></dependency>

2、代码实现

2.1 SM4        

        SymmetricCrypto sm4 = SmUtil.sm4(appKey.getBytes());// 加密String encryptHex = sm4.encryptHex(dataJson);//解密byte[] decrypt = sm4.decrypt(encryptHex);

2.2、SM3

// 加密
String sign = SmUtil.sm3(waitSign);


http://www.ppmy.cn/news/1551060.html

相关文章

02.ES6(2)

2.10、rest参数 ES6 引入 rest 参数&#xff0c;用于获取函数的实参&#xff0c;用来代替 arguments <script>// ES5 获取实参的方式/* function date(){console.log(arguments);}date(大白,二黑,三孩); */// rest 参数/* function date(...args) {console.log(args)…

数据库期末复习题库

1. Mysql日志功能有哪些? 记录日常操作和错误信息&#xff0c;以便了解Mysql数据库的运行情况&#xff0c;日常操作&#xff0c;错误信息和进行相关的优化。 2. 数据库有哪些备份方法 完全备份&#xff1a;全部都备份一遍表备份&#xff1a;只提取数据库中的数据&#xff0…

最新特性MCP协议客户端复现

参考官方文档 https://modelcontextprotocol.io/quickstart1、客户端 2、 安装uv&#xff0c;一键安装命令&#xff1a; 先使用这个开放策略&#xff0c;否则直接安装失败 &#xff08;我是win11&#xff0c;再powershell&#xff09; Set-ExecutionPolicy RemoteSigned -Sco…

Spring Boot 开发环境搭建详解

下面安装spring boot的详细步骤&#xff0c;涵盖了从安装 JDK 和 Maven 到创建和运行一个 Spring Boot 项目的全过程。 文章目录 1. 安装 JDK步骤 1.1&#xff1a;下载 JDK步骤 1.2&#xff1a;安装 JDK步骤 1.3&#xff1a;配置环境变量 2. 安装 Maven步骤 2.1&#xff1a;下载…

Could not load library libnvrtc.so.11.2. Error: libnvrtc.so.11.2

目录 2. 解决方案 未测试 解决方法 测试ok Could not load library libnvrtc.so.11.2. Error: libnvrtc.so.11.2 torch运行时报错 2. 解决方案 未测试 去PyTorch官网重新下载安装pytorch=2.2。并且看起来pytorch=2.1和pytorch=2.3均不太行。 参考自:Fine-tuning on a V100 …

远离网上的广告和无用信息,自己动手搭建Tipask问答网站

文章目录 前言1.Tipask网站搭建1.1 Tipask网站下载和安装1.2 Tipask网页测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2 Cpolar稳定隧道&#xff08;云端设置&#xff09;2.3 Cpolar稳定隧道&#xff08;本地设置&#xff09; 3. 公网访问测试4. 结语 前…

使用ENSP实现OSPF

一、项目拓扑 二、项目实现 1.路由器AR1配置 进入系统试图 sys将路由器命名为R1 sysname R1关闭信息中心 undo info-center enable 进入g0/0/0接口 int g0/0/0将g0/0/0接口IP地址配置为1.1.1.1/24 ip address 1.1.1.1 24进入g0/0/1接口 int g0/0/1将g0/0/1接口IP地址配置为2…

rocylinux9.4安装prometheus监控

一.上传软件包 具体的软件包如下&#xff0c;其中kubernetes-mixin是下载的监控kubernetes的一些监控规则、dashbaordd等。 二.Prometheus配置 1.promethes软件安装 #解压上传后的软件包 [rootlocalhost ] cd /opt [rootlocalhost opt]# tar xf prometheus-2.35.3.linux-amd…