草庐IT

【工具】国密SM4算法加解密

        SM4是一种分组密码算法,其分组长度为128位(即16字节,4字),密钥长度也为128位(即16字节,4字)。其加解密过程采用了32轮迭代机制(与DES、AES类似),每一轮需要一个轮密钥(与DES、AES类似)。1.引入密码算法相关包org.bouncycastlebcprov-jdk15on1.592.工具类importjava.nio.charset.StandardCharsets;importjava.security.Key;importjava.security.NoSuchAlgorithmException;importjava.security.NoSuch

终于把前后端sm加解密以及加签验证调通了。

终于把前后端sm加解密以及加签验证调通了! 领导要求我对项目的数据传输安全考虑下,因此就想到了对敏感字段做加密和对请求、响应做数字签名验证。网上看了很多文章,可能是因为我对加密这块不了解,感觉都比较乱。所以前前后后花了4天才把前后端调通。特地写一篇文章记录下流程。这里使用的是sm国密算法。不对的地方请读者评论指出。1.简单说明:前端使用sm-crypto库后端加密库使用bc库,架构上使用aop,注解等实现2.具体实现-前端加密流程:生成一个对称密钥,对每个字段使用sm4对称加密,然后进行base64编码。对称密钥使用sm2非对称加密//生成对称密钥exportfunctiongenSM4Sym

SM3密码杂凑算法

一.基本概念SM3密码杂凑算法用于商用密码应用中的数字签名和验证、消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。1.1术语与定义1.1.1消息(message)任意有限长度的比特串。本文文中的消息作为杂凑算法的输入数据。1.1.2杂凑值(hashvalue)杂凑算法作用于消息后输出的特定长度的比特串。本文文中的杂凑值长度为256比特。1.1.3字(word)长度为32的比特长度1.1.4初始值IV=7380166f4914b2b9172442d7da8a0600a96f30bc163138aae38dee4db0fb0e4e1.1.5常量Tj=79cc45190≤j≤1

使用 Java Bouncy Castle实现国密算法SM4、SM3以及SM2的加密

国密算法的实现借助了Java库函数BouncyCastle,加密库安装使用教程请参考链接SM4简介SM4,又称为商密算法,是一种分组密码算法,于2012年由中国密码技术研究中心(中国密码学会成员)发布,目前已成为我国国家密码算法,并在多个领域得到了广泛的应用。SM4算法采用了32轮迭代结构,密钥长度为128位,分组长度为128位,支持ECB、CBC等多种分组模式,在安全性、效率和适用性上都得到了良好的平衡。SM4算法具有高速度、高安全性、硬件实现简单等特点,可以在多种安全场景中使用,比如对称加密、消息认证码等方面。同时,SM4算法已经经过了严格的国际标准测试,成为ISO/IEC18033-4标

小程序软键盘&SM2解密方式

小程序软键盘&SM2解密方式转载请著名出处:https://www.cnblogs.com/funnyzpc/p/17572445.htmlSM2基本信息私钥(primarykey)6082011f17b21dab7da93f2dc1a739b530b969171c7116bebb0535a953e20bae公钥(publickey)041708d05635b28264a919b89b1370b1517e51d19851c93b49bbaa54521ca4fec0d384069374dcedd846abb55b9920cc4fdf2270b4283b30de55344a66cb3f4334加密

前端sm2国密加密解密

1.下载国密包npmism-crypto2.获取后端的公钥注sm-crypto使用BC库加解密前端密钥与后端密钥是两队,非常规的base64密钥前端公钥需要在前面加04占位否则无法解密//前端公钥constpublicKey='0453bac6d2499e427529b3fcd213c33fed87a596d27c52334d457c222c729727925bae7bd7937b2dee449303faf69f128ea7530994d7a9e1272e14e6efef5437ca';//前端私钥constprivateKey='009c2d9397afd38f5fe46d85611f55e

微信小程序中的SM2加密

背景项目在进行等保测试时,发现小程序部分接口通过修改接口参数可以获取到部分敏感信息,属于严重漏洞。为了减少代码改动工作量,考虑使用国密SM2对参数进行统一加密后,后端需要解密后再使用。同时考虑到部分响应数据内容过多,如果后端对响应数据也加密,前端解密时间过长影响体验,所以只针对了请求参数加密。具体实现一、小程序可配置安全鉴权微信小程序官方提供了接口通信鉴权体系,使用了数据加密与签名的机制,防止数据泄漏与篡改,且具备不可否认性。开发者可在小程序管理后台API安全模块,为应用配置密钥与公钥,以此来保障开发者应用和微信开放平台交互的安全性。安全鉴权模式介绍:https://developers.we

IP组播6_PIM-SM(SSM)详解

目录1.PIM-SM(SSM)简介2.PIM-SM(SSM)工作原理3.PIM-SM(SSM)实验3.1PIM-SM(SSM)常用配置命令3.2 PIM-SM(SSM)实验配置步骤3.3 PIM-SM(SSM)实验效果​编辑1.PIM-SM(SSM)简介PIM-SM(SSM)是指定源稀疏组播模式,需要配合IGMPv3协议实现指定源组播功能,相对于PIM-SM(ASM)模式来说,PIM-SM(SSM)网络结构和配置都非常简单,PIM-SM(SSM)无需维护RP,没有RP也就不需要注册组播源和构建RPT树,PIM-SM(SSM)使用SPT转发组播数据包。2.PIM-SM(SSM)工作原理组播组成员

国密:SM2公私钥加签验签

一、工具类POM中增加hutoolcn.hutoolhutool-core5.6.5packagecn.test.encrypt.utils.sm2;/***SM2签名所计算的值可以根据实际情况增加删除字段属性*/publicclassSM2SignVO{ //16进制的私钥 publicStringsm2_userd; //椭圆曲线点X publicStringx_coord; //椭圆曲线点Y publicStringy_coord; //SM3摘要Z publicStringsm3_z; //明文数据16进制 publicStringsign_express; //SM3摘要值 publ

适用于前后端公用的SM2国密加密传输, JAVA + VUE

由于等保和多个系统间的数据传输加密,写了一个共有的前端与后端,后端与后端,的通用算法SM2简单加密, 不需要验签,几行代码搞定. 引包,测试好几遍,这个包适合jdk1.8使用1、后端代码示例引包,org.bouncycastlebcprov-jdk18on1.72没有意外就应该直接能用下面代码了importorg.bouncycastle.asn1.gm.GMNamedCurves;importorg.bouncycastle.asn1.x9.X9ECParameters;importorg.bouncycastle.crypto.engines.SM2Engine;importorg.bou