Giter Site home page Giter Site logo

sm2_sm3_sm4encrypt's People

Contributors

xjfuuu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sm2_sm3_sm4encrypt's Issues

签名验签,换自己的密钥对,会导致验签失败。

在SecurityTestAll.java文件中,将密钥对换成:
String prikey = "046200dc15652d755ba776ab517215e1a2b781896e9639f333562eff73cbec4b9b24c67721f945fe97f109d045dc5cfc59aa264265acc910c573488ec10d295d2d";
String pubkey = "f700bd1001d7b567cce0eb600aae61307acecf9b0ac821c7565493c5ae9e6e52";
会导致签名失败。

这个是什么原因导致的? 能帮忙解答下吗?

SM2解密乱码

直接clone 下来 执行 SecurityTestAll :
--产生SM2秘钥--:
公钥:045da7c8c5666474838e7e0cf63230214cf7547b8ede049a0f7b0a4d5b14f1954017aa9a3bdeb133c5ae3a9ee4460ca3fdff4e95eaae0a3ac62adccdfedd4d91fe
私钥:2bf1ed2fed67adb1b3a8826b98534d1f0d6d605ae28101db02599794b9c2de50
--测试加密开始--
原文UTF-8转hex:49204c6f766520596f7520466f7265766572
加密:
密文:9007e5aeb55ffa5d3fabf95a19e4c07f4a526c462c7418a2bf909cf2d24c7a7e993a3eb6334bedcb0988cc2e2946c80adbf4b9c4554d0073cc7963eecc39821edd3c0d4cb75b6085c35e41bbbbe6a11af0d587f2ee84fbe8794a4f446aecf4d5e246721d6f4f0f7a00eb3aea8b6594d65504
解密:1
\�VHC����i���Ŭ�
--测试加密结束--
--测试SM2签名--
原文hex:49204c6f766520596f7520466f7265766572
签名测试开始:
软加密签名结果:3046022

输入流没有关闭

src/main/java/cn/xjfme/encrypt/utils/sm2/SM2SignVerUtils.java

变量bis等未关闭流

SM2对接加密机问题

SM2对接加密机的时候 需要怎么对接呀 我用软加密然后掉加密机接口的时候报公私钥不对

iv的值被动态改变了

为了标准化输入输出,我对 SM4Utils 作了入参、出参改造,全部以byte[]来表示,由于iv是一个固定值,采用了new byte[16]这样一个字节数组对象,结果发现这个iv对象在解密时发生了改变,于是解密失败。希望能算法里能复制一组iv使用,与入参隔离。

sm4填充计算是否有问题?

sm4填充计算是否有问题?
注释是这样的
//填充:hex必须是32的整数倍填充 ,填充的是80 00 00 00
计算是否需要填充是这样的
int p = 16 - input.length % 16;

但当input.length为32时,p为16,填充完则为48,不是32的整数倍

所以应该做一个判断,p小于16才填充,因为等于16的时候,刚好就是32的整数倍

参数说明

  1. 项目使用的国密参数不是国家密码局的推荐椭圆曲线参数,如果计算错误,需要改这个。
    //国密参数
    public static String[] ecc_param = {
            "FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFF",
            "FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFC",
            "28E9FA9E9D9F5E344D5A9E4BCF6509A7F39789F515AB8F92DDBCBD414D940E93",
            "FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF7203DF6B21C6052B53BBF40939D54123",
            "32C4AE2C1F1981195F9904466A39C9948FE30BBFF2660BE1715A4589334C74C7",
            "BC3736A2F4F6779C59BDCEE36B692153D0A9877CC62A474002DF32E52139F0A0"
    };
  1. 关于USERID
    请参阅SM2椭圆曲线公钥密码算法-P54 用户其他信息一栏。
    USERID非IDa
设用户A的身份是:[email protected]。用ASCII编码记ID A :
414C 49434531 32334059 41484F4F 2E434F4D。ENTL A =0090。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.