当前位置: 首页 > wzjs >正文

南通做外贸的公司网站谷歌网站优化推广

南通做外贸的公司网站,谷歌网站优化推广,ftp上传网站之后怎么做,临沂企业网站Spring 集成 SM4(国密对称加密)算法 主要用于保护敏感数据,如身份证、手机号、密码等。 下面是完整集成步骤(含工具类 使用示例),采用 Java 实现(可用于 Spring Boot)。 一、依赖引…

Spring 集成 SM4(国密对称加密)算法 主要用于保护敏感数据,如身份证、手机号、密码等。

下面是完整集成步骤(含工具类 + 使用示例),采用 Java 实现(可用于 Spring Boot)。


一、依赖引入

推荐使用 BouncyCastle 国密库支持 SM4:

<dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk15to18</artifactId><version>1.70</version>
</dependency>

二、SM4 工具类(ECB 模式)

import org.bouncycastle.jce.provider.BouncyCastleProvider;
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.StandardCharsets;
import java.security.Security;
import java.util.Base64;public class SM4Util {static {// 注册 BouncyCastle 提供者Security.addProvider(new BouncyCastleProvider());}private static final String ALGORITHM_NAME = "SM4";private static final String TRANSFORMATION = "SM4/ECB/PKCS5Padding";private static final String ENCODING = "UTF-8";/*** 加密*/public static String encrypt(String plainText, String key) throws Exception {Cipher cipher = Cipher.getInstance(TRANSFORMATION, "BC");SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(ENCODING), ALGORITHM_NAME);cipher.init(Cipher.ENCRYPT_MODE, secretKey);byte[] cipherText = cipher.doFinal(plainText.getBytes(StandardCharsets.UTF_8));return Base64.getEncoder().encodeToString(cipherText);}/*** 解密*/public static String decrypt(String cipherTextBase64, String key) throws Exception {Cipher cipher = Cipher.getInstance(TRANSFORMATION, "BC");SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(ENCODING), ALGORITHM_NAME);cipher.init(Cipher.DECRYPT_MODE, secretKey);byte[] decrypted = cipher.doFinal(Base64.getDecoder().decode(cipherTextBase64));return new String(decrypted, StandardCharsets.UTF_8);}
}

三、密钥要求

  • SM4 密钥必须是 16 字节(128 位)
  • 不能随意长度,例如:
String key = "1234567890abcdef"; // 刚好16个字符

四、使用示例

public class TestSm4 {public static void main(String[] args) throws Exception {String key = "1234567890abcdef";String content = "国密测试数据";String encrypted = SM4Util.encrypt(content, key);System.out.println("加密后: " + encrypted);String decrypted = SM4Util.decrypt(encrypted, key);System.out.println("解密后: " + decrypted);}
}

五、Spring Boot 项目集成建议

  1. 封装成 SM4Service

    @Service
    public class SM4Service {private final String key = "your-16-byte-key";public String encrypt(String data) {try {return SM4Util.encrypt(data, key);} catch (Exception e) {throw new RuntimeException("SM4 加密失败", e);}}public String decrypt(String data) {try {return SM4Util.decrypt(data, key);} catch (Exception e) {throw new RuntimeException("SM4 解密失败", e);}}
    }
    
  2. 加密敏感字段(如手机号)存数据库

  3. 接口入参加密 + 出参解密(前后端配合)

  4. 支持注解方式自动加解密(可选扩展)


可选增强

  • 支持 SM4 CBC 模式(需要 IV 向量)
  • 密钥统一管理(建议结合加密配置中心)
  • 加密数据进行 Base64 编码(便于传输)
  • 使用 Sa-Token + SM4 实现 Token 加密

http://www.dtcms.com/wzjs/258567.html

相关文章:

  • 上海建筑设计公司网站seo职位要求
  • wordpress 如何添加广告插件seo实战密码第三版
  • 泉州鲤城网站建设友情链接搜读
  • 中 网站建设 扬州手机怎么自己制作网页
  • 金华做网站多少钱怎么制作一个自己的网站
  • fireworks cs6如何做网站网站功能优化
  • 自己做网站好还是购买网站好模板网站好还是自助建站好
  • 哪个网站做医学培训好短视频营销成功案例
  • 福州台江区网站建设舆情监测软件
  • 重庆做商城网站建设西安seo王尘宇
  • 安防公司网站模板网站运营推广的方法有哪些
  • 网站的程序怎么做免费建网站的平台
  • 专业长沙做网站公司十大网络营销经典案例
  • 网站维护案北京seo编辑
  • 机械手表网站晋城seo
  • 独立网站需要多少钱上海网站建设公司
  • 网站建设网课巨量算数关键词查询
  • 网站优点缺点某个产品营销推广方案
  • 怎么做全息网站seo搜索引擎优化岗位要求
  • 邵阳网站优化seo实战培训
  • 冷门不重名的公司名称天津seo
  • 网站建设托管推广海报免费的自助建站
  • 网站页面设计好了后台如何添加百度网站收录提交入口
  • 怎么在虚拟主机上发布网站柳州今日头条新闻
  • 郑州pc网站开发什么是百度竞价排名
  • 石嘴山网站关于两学一做哪有恶意点击软件买的
  • 可以免费看日本黄片的app做网站优化什么
  • 做的网站底部应该标注什么意思seo刷关键词排名免费
  • ps做网站的流程百度排行榜明星
  • 近几天发生的新闻大事网站如何做优化推广