RSA简介RSA是一种非对称加密算法,使用公钥加密就可以使用私钥解密,使用私钥加密就可以使用公钥解密。RSA公钥对外公开,私钥自己保留。RSA既能加密、解密,也能加签、验签加密解密:RSA是公钥加密,私钥私密。数据发送方使用接收方的公钥来对数据进行加密,接收方接收到数据之后用自己的私钥解密加签验签:RSA私钥加签,公钥验签。数据发送方使用自己的私钥对数据进行签名,数据接收方使用数据发送方的公钥来验签。我遇到的业务场景是:服务端接口开发人员给了我一套客户端的PKCS1格式的私钥字符串和服务端的公钥字符串。我给服务端发送数据的时候要使用私钥对数据进行签名之后再发送。接收到服务端返回的数据之后要使用
JAVA集成国密SM4加解密一、pom配置二、代码集成2.1、目录结构2.2、源码2.3、测试三、遇到的坑3.1、秘钥长度3.2、转码问题四、相关链接国密算法概述:https://blog.csdn.net/qq_38254635/article/details/131801527SM4对称算法SM4无线局域网标准的分组数据算法。对称加密,密钥长度和分组长度均为128位一、pom配置!--国密-->dependency> groupId>org.bouncycastle/groupId> artifactId>bcprov-jdk15to18/artifactId> version>1.66/
https://blog.csdn.net/nicai_hualuo/article/details/121555000中介绍了sm3的算法并给出了可用代码,我只是将其拷贝过来,测试、去掉多余的输出,并进行了简单封装,以方便项目中使用。修正了十六进制转字符串和十进制的方法支持小写的十六进制字符串。用法见main函数。#include#include#includeusingnamespacestd;namespacesm3{ //二进制转换为十六进制函数实现 stringBinToHex(stringstr) { stringhex="";//用来存储最后生成的十六进制数 inttemp=
目录1.需求: 2.关键技术3.APP和前端网页->实现4.Java后台->实现5.个人使用加密后结果不一致,总结一下区别1.需求:·Vue网页端实现数据数据安全,关键数据加密,防篡改等·Apk手机端实现数据安全,关键数据加密,防篡改,APK完整性校验等·Java后台实现库·Apk用uniApp开发,如果是java开发可以借鉴使用java库 2.关键技术·关键数据加密sm2·项目数据安全防篡改sm4与sm3结合·手机端APK完整性校验sm3自定义签名方式(计算数据快)·js(vue,uniApp)使用sm-crypto->跳转·java(AppJava开发,java后台)3.APP和前端网页-
解决Pytorch的版本问题1.背景介绍2.解决方案3.相关资料1.背景介绍最近,笔者在跑代码时,出现了如下问题。翻译过来,大意是目前所使用的RTX3090的显卡的算力是8.6,而当前Pytorch所依赖的CUDA版本支持的算力只有3.7、5.0、6.0、6.1、7.0、7.5。UserWarning:NVIDIAGeForceRTX3090withCUDAcapabilitysm_86isnotcompatiblewiththecurrentPyTorchinstallation.ThecurrentPyTorchinstallsupportsCUDAcapabilitiessm_37sm_
目录一、序言二、关于PKCS#1和PKCS#8格式密钥1、简介2、区别二、关于JSEncrypt三、关于jsrsasign四、前端RSA加解密、加验签示例1、相关依赖2、cryptoUtils工具类封装3、测试用例五、Java后端RSA加解密、加验签1、CryptoUtils工具类封装2、测试用例六、前后端加解密、加验签交互测试1、前端加密,后端解密(1)前端代码(2)后端代码2、后端加密,前端解密(1)后端代码(2)前端代码3、前端加签,后端验签(1)前端代码(2)后端代码4、后端加签,前端验签(1)后端代码(2)前端代码一、序言最近有一些安全性要求比较高的场景,我们提供API给第三方商户用
首先引入maven依赖dependency>groupId>org.bouncycastlegroupId>artifactId>bcprov-jdk15to18artifactId>version>1.69version>dependency>dependency>groupId>cn.hutoolgroupId>artifactId>hutool-allartifactId>version>5.8.16version>dependency>然后运行以下代码KeyPairpair=SecureUtil.generateKeyPair("SM2");byte[]privateKey=pair.
PHPSM2签名如何实现?SM2是一种基于椭圆曲线密码算法的公钥密码体制,包括数字签名、密钥交换和公钥加密三部分。本文将介绍如何使用PHP实现SM2签名。1.环境准备在开始实现SM2签名之前,确保已经安装了以下依赖:PHP7.0或更高版本OpenSSL扩展2.安装库使用一个流行的第三方库php-gmssl来实现SM2签名。首先,通过Composer安装该库:composerrequireyuansir/php-gmssl3.生成密钥对require'vendor/autoload.php';useYuansir\GmSSL\SM2;//生成密钥对$keyPair=SM2::generateKe
目录一、环境说明二、功能说明三、EVP接口说明四、使用实例4.1MD5算法实现实例。4.2sha256算法实现实例。4.3sm3算法实现实例。五、源码地址一、环境说明操作系统:linux(debian)开发工具:Qtcreator4.8.2Qt版本:5.11.3.45-1openssl版本:openssl-3.1.0二、功能说明1、使用openssl的EVP接口开发对数据进行hash。算法包括:md5、sha256、sm32、使用openssl的EVP接口开发对文件进行hash。算法包括:md5、sha256、sm3三、EVP接口说明使用EVP的接口有以下几个:EVP_MD_CTX_new,E
国密SM4对称加密Java加解密提示:国密SM4对称加密Java加解密国家密码管理局参考博文国密SM4对称加密Java加解密国密SM4对称加密Java加解密前言一、SM4是什么?二、使用步骤1.引入库总结前言SM4.0(原名SMS4.0)是中华人民共和国政府采用的一种分组密码标准,由国家密码管理局于2012年3月21日发布。相关标准为“GM/T0002-2012《SM4分组密码算法》(原SMS4分组密码算法)”。一、SM4是什么?SM4二、使用步骤1.引入库代码如下(示例):!--国密-->dependency>groupId>org.bouncycastle/groupId>artifact