国密sm2 js加密后台解密,sm3 js、后台加密,sm4 后台加密
公司最近进行安全问题修改,所以要用国密系列的sm2,sm3,sm4,这些加密都用在登录模块,因此作为菜鸟的我,从网上找了一堆资料,整理修改后形成符合项目的加密,需要的可以自己去查看相关代码和jar包:sm2、sm3、sm4国密js+后台代码国密加密.rar_sm2js解密-Java文档类资源-CSDN下载
具体为:
1.为了保证传输性所以采用sm2加密;ps:sm2 js加密(C1C2C3-0模式),后台sm2解密(C1C2C3-0模式)
2.为了保证完整性所以采用sm3加密;ps: sm3 js加密,后台sm3加密(因为sm3杂凑算法所以不需要解密)
3.为了保证安全性所以采用sm4加密。ps:sm4 加密 CBC模式,解密(CBC模式)
sm2 js加密
sm3 js加密
sm2 后台加密
public class SM2UtilTest {
public static void main(String[] args) {
//获取公私钥
SM2KeyPair sm2Keys = SM2Util.getSm2Keys(false);
System.out.println("公钥 :" + sm2Keys.getPublicKey());
System.out.println("私钥 :" + sm2Keys.getPrivateKey());
//需要加密的数据
String data = "5fcd0320ed15fcdf5b08e9c4a9f48a5069f48dcba813eba568327906fd97c8ee";
//公钥加密,获取密文
String encrypt = SM2Util.encrypt(sm2Keys.getPublicKey(), data);
System.out.println("密文 :" + encrypt);
//私钥解密
String decrypt = SM2Util.decrypt(sm2Keys.getPrivateKey(), encrypt);
System.out.println("解密数据 : " + decrypt);
System.out.println("明文密文是否相同 :" + data.equals(decrypt));
}
}
sm3后台
public static void main(String[] args){
//测试
String str = "123456";
String hex = sm3Util.encrypt(str);
System.out.println(hex);
String str1 = "sdfsd";
String hex1 = sm3Util.encrypt(str1);
System.out.println(hex1);
String str2 = "sdfsf...";
String hex2 = sm3Util.encrypt(str2);
System.out.println(hex2);
String strpre = "";
String hexpre = sm3Util.encrypt(strpre);
System.out.println(hexpre);
//验证加密后的16进制字符串与加密前的字符串是否相同
boolean flag = sm3Util.vertify(str, hex);
System.out.println(flag);
}
sm4
public static void main(String[] args) throws IOException
{
String plainText = "";
SM4Utils sm4 = new SM4Utils();
sm4.secretKey = "JeF8U9wHFOMfs2Y8";
sm4.hexString = false;
System.out.println("ECB模式");
String cipherText = sm4.encryptData_ECB(plainText);
System.out.println("密文: " + cipherText);
System.out.println("");
plainText = sm4.decryptData_ECB(cipherText);
System.out.println("明文: " + plainText);
System.out.println("");
System.out.println("CBC模式");
sm4.iv = "UISwD9fW6cFh9SNS";
cipherText = sm4.encryptData_CBC(plainText);
System.out.println("密文: " + cipherText);
System.out.println("");
plainText = sm4.decryptData_CBC(cipherText);
System.out.println("明文: " + plainText);
}
国密sm2 js加密后台解密,sm3 js、后台加密,sm4 后台加密相关推荐
- 使用 Python 脚本执行国密 sm2 加解密
一.场景 工作中的一个场景:Go 需要对信息加解密,但是研究了 GmSSL Go API 文档之后,发现是依赖于 CGO 的,同事配了半天环境没配成功.于是换了一个方法,选择 Go 调 Python ...
- 国密SM2,SM3,SM4的前后台(js和java)加解密写法
目录 SM2加解密 js java SM3加密 js java sm3前后台(js/java)加密不一致原因 SM4加解密 js java 之前做一个项目的时候需要用到国密SM2,SM3,SM4的加解 ...
- 国密SM2前端加密,Java后台解密问题
背景:要实现请求参数加密的功能,使用的是国密SM2算法,前端向后台发送请求获取公钥,将请求加密发送到后台,后台用对应的私钥进行解密 问题:前端进行加密的请求,后台无法进行解析 解决方案:(此处所用的类 ...
- 国密SM2算法(JS加密,C#、Java解密)
常见的渗透测试会将网站登录时密码使用明文传输视为风险.推荐使用国密算法或者RSA算法对密码进行加密传输. RSA加密(JS加密,C#.Java解密)请参考<RSA对称加密(JS加密,C#.Jav ...
- Spring Security-用户密码自定义国密SM2加密
为什么80%的码农都做不了架构师?>>> 由于甲方要求需要把密码的加密方式改为国密SM2的方式,网上看了一些写的代码,结合了一下SpringSecurity用户自定义加密,直接 ...
- 国密SM2算法的只求理解不求甚解 (4/5)SM2算法加解密协议
国密SM2算法的只求理解不求甚解 (1/5)前置数学知识:模运算 国密SM2算法的只求理解不求甚解 (2/5)前置数学知识:平面几何 国密SM2算法的只求理解不求甚解 (3/5)SM2算法数学模型 国 ...
- php gmssl,支持国密SM2/SM3/SM4/SM9/ZUC/SSL的密码工具箱GmSSL
GmSSL概述 GmSSL是一个开源的密码工具箱,支持SM2/SM3/SM4/SM9/ZUC等国密(国家商用密码)算法.SM2国密数字证书及基于SM2证书的SSL/TLS安全通信协议,支持国密硬件密码 ...
- 国密SM2算法密钥派生函数KDF的实现
前段时间需要实现国密算法SM2的签名.验签.加密.解密等功能,加解密过程使用到的密钥派生函数(KDF),从网上搜到的代码不符合<GMT 0003.4-2012 SM2椭圆曲线公钥密码算法 > ...
- 一文告诉你,国密SM2算法有多优秀
可能很多人都想不到,密码技术是与核技术.航天技术并列的国家三大安全核心技术之一,在保障信息安全,建设行业网络安全环境,增强我国行业信息系统的"安全可控"能力等方面发挥着至为关键的作 ...
最新文章
- STM32使用另外两种方法使LED灯闪烁
- 干货丨机器学习新手一定要掌握的10大算法
- iOS App与iTunes文件传输的方法和对iOS App文件结构的说明
- html固定广告位置,如何将广告始终定位到网页右下角
- YOLO系列算法精讲:从yolov1至yolov4的进阶之路
- 边缘使用 K8s 门槛太高?OpenYurt 这个功能帮你快速搭建集群!
- opengl加载显示3DS模型3DS类型文件
- maven 父maven_Maven不会吮吸。 。 。 但是Maven文件会
- 微软“作死”Windows
- 第三:启发式搜索:A* 算法
- 设置模糊阴影_制作带模糊效果的PPT首页
- KEmulator eclipse 调试
- 斩获双奖 | 悬镜安全亮相IDC 2022 CSO全球网络安全峰会
- prlooks插件下载_ae looks插件下载
- Isotropix Clarisse iFX Mac(CG渲染软件) v3.6破解版
- 期权、期货及其他衍生产品 第一章读书笔记
- 8.基本数据类型详细讲解-list/tuple
- abortonerror_DCB结构
- 理解ASP.NET 5运行时命令:DNVM, DNX, 和DNU
- 一次性奖金是否选择并入综合所得测算表