SM3 Sm4加密算法

一、概述

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

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

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

2.1、 应用场景

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

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

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

二、SpringBoot 实现 加密

1、 pom

        
            com.alibaba
            fastjson
            1.2.83
        

        
            org.bouncycastle
            bcprov-jdk15on
            1.70
        

        
            cn.hutool
            hutool-all
            5.8.11 
        

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);

你可能感兴趣的:(SM3,SM4)