xjfuuu / sm2_sm3_sm4encrypt Goto Github PK
View Code? Open in Web Editor NEW基于Java语言的国密SM2/SM3/SM4算法库 , 包含加密/解密、签名/验签、摘要算法的实现代码和测试方法 。
License: MIT License
基于Java语言的国密SM2/SM3/SM4算法库 , 包含加密/解密、签名/验签、摘要算法的实现代码和测试方法 。
License: MIT License
在SecurityTestAll.java文件中,将密钥对换成:
String prikey = "046200dc15652d755ba776ab517215e1a2b781896e9639f333562eff73cbec4b9b24c67721f945fe97f109d045dc5cfc59aa264265acc910c573488ec10d295d2d";
String pubkey = "f700bd1001d7b567cce0eb600aae61307acecf9b0ac821c7565493c5ae9e6e52";
会导致签名失败。
这个是什么原因导致的? 能帮忙解答下吗?
这里用了两次SM3Digest.update。这个两次是什么意思呢
没事了
src/main/java/cn/xjfme/encrypt/utils/sm2/SM2SignVerUtils.java
变量bis等未关闭流
SM2对接加密机的时候 需要怎么对接呀 我用软加密然后掉加密机接口的时候报公私钥不对
为了标准化输入输出,我对 SM4Utils 作了入参、出参改造,全部以byte[]来表示,由于iv是一个固定值,采用了new byte[16]这样一个字节数组对象,结果发现这个iv对象在解密时发生了改变,于是解密失败。希望能算法里能复制一组iv使用,与入参隔离。
sm4填充计算是否有问题?
注释是这样的
//填充:hex必须是32的整数倍填充 ,填充的是80 00 00 00
计算是否需要填充是这样的
int p = 16 - input.length % 16;
但当input.length为32时,p为16,填充完则为48,不是32的整数倍
所以应该做一个判断,p小于16才填充,因为等于16的时候,刚好就是32的整数倍
硬件密码介质,如密码机等,在签名过程中z值不参与,请教下基于bc库如何实现呢?
签名结果不带z值的验签,可参考
https://i.goto327.top/CryptTools/SM2.aspx
进行不带Z值签名验证。
请大佬指导下。
<!--国密依赖包-->
<!-- https://mvnrepository.com/artifact/org.bouncycastle/bcpkix-jdk15on -->
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk18on</artifactId>
<version>1.77</version>
</dependency>
//国密参数
public static String[] ecc_param = {
"FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFF",
"FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFC",
"28E9FA9E9D9F5E344D5A9E4BCF6509A7F39789F515AB8F92DDBCBD414D940E93",
"FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF7203DF6B21C6052B53BBF40939D54123",
"32C4AE2C1F1981195F9904466A39C9948FE30BBFF2660BE1715A4589334C74C7",
"BC3736A2F4F6779C59BDCEE36B692153D0A9877CC62A474002DF32E52139F0A0"
};
设用户A的身份是:[email protected]。用ASCII编码记ID A :
414C 49434531 32334059 41484F4F 2E434F4D。ENTL A =0090。
请教一下 前端 http://www.jonllen.com/upload/jonllen/case/jsrsasign-master/sample-sm2.html javascript SM2的签名 和这里的软签名 如何兼容?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.