美文网首页
fabric-sdk-java 私钥签名

fabric-sdk-java 私钥签名

作者: ccDown | 来源:发表于2019-05-15 12:12 被阅读0次

SDK下载地址:https://github.com/hyperledger/fabric-sdk-java

给了个任务,是使用私钥对数据进行签名。
本来以为这个sdk安卓上也能用,结果看了官方说不支持Android。
通过百度跟Google并没有发现什么资料,好惨。。。还是看源码。。。

源码版本我看的是1.4.0的,官网已经是2.0的了

先看了Readme,这个时候就是翻译软件有用的时刻,除了API(https://sdkjavadocs.github.io/),并没有发现别的啥有用的东西,然后查看跟加密有关的文件。

首先看的是fabric_ca文件夹里边的代码,单纯是因为看到了ca证书很亲切。硬着头皮瞅了仨小时,还没看到加密签名相关的代码,MMP。大家都知道,硬的时间长了对身体不好,所以决定先看看窗外的风景。

然后就开始看frabic文件夹里边的代码,忽然看到了security文件夹,吆喝,似乎看到了曙光。


image.png

此时我的心情跟这个文件的前三个字母一样想哭。。。

一瞅里边的方法,感觉好像看到了久别的女朋友一样激动。

image.png

随后一顿猛操作

 public static void main(String[] args){

    try {
        CryptoPrimitives cryptoPrimitives = new CryptoPrimitives();
        //私钥
        String stringPrivateKey = "";
        //证书
        String stringCertificate = "";
        cryptoPrimitives.init();
        //获取私钥
        PrivateKey privateKey = cryptoPrimitives.bytesToPrivateKey(stringPrivateKey.getBytes());
        //获取证书
        Certificate certificate = cryptoPrimitives.bytesToCertificate(stringCertificate.getBytes());
        //要签名的明文
        String msg = "abc=123";
        //私钥签名 调用decodeECDSASignature()方法
        byte[] sign = cryptoPrimitives.sign(privateKey,msg.getBytes());
        //base64编码获得结果
        Base64.Encoder encoder = Base64.getEncoder();
        String baseSign = encoder.encodeToString(sign);
        System.out.println("获取签名Base64结果为:"+baseSign);
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        e.printStackTrace();
    } catch (InstantiationException e) {
        e.printStackTrace();
        e.printStackTrace();
    } catch (CryptoException e) {
    } catch (InvalidArgumentException e) {
        e.printStackTrace();
    }
}

此时我满奶子都是登上人生巅峰的情境。妈的,脑袋已经出现幻觉了,赶紧跑一哈代码,要是还不好我就去死。
运行这个main,忽然发现我是搞安卓的,好多文件还在报红,不会编译这个SDK代码,TM,尴尬症要犯了。。。那我现在找后台的人来编译这玩意不是就感觉跟被人家抓着小辫子一样不舒服么。爸爸的命运要自己掌握。

看官网ReadMe的编译条件,人家条件说的很明白,JDK1.8,Maven 3.5,搞起来(搞了半天,算了,还是给java后台的一个机会,人生在世谁还没个小污点呢)

最后是创建了一个Web项目,然后把这个frabic源码作为三方库引进去结果可以用了

image.png

写完之后才想起来源码里边有test文件夹,里边是SDK源码的测试类,如果不会用SDK的类,看这个对应的test类就对了(在官网的ReadMe里边提到的)。那我们就来看看人家怎么用的


image.png

然后凭着绝顶聪明的脑袋(不不不,我还有头发)找到了签名的方法。(要是恋爱有迹可循就好了)


test类下CryptoPrimitivesTest的签名方法测试.png

那我们现在就使用人家的代码就好了,应该比自己瞎鸡儿摸索的好很多

相关文章

  • fabric-sdk-java 私钥签名

    SDK下载地址:https://github.com/hyperledger/fabric-sdk-java[ht...

  • 什么是公钥、私钥、数字签名?

    公钥私钥 + 数字签名 1. 公私钥左右 公钥的主要作用:加密;验证签名。 私钥的主要作用:签名;解密。 1. 公...

  • 数字签名

    数字签名学习参考资料 数字签名总结: 公钥和私钥是成对的,它们互相解密。公钥加密,私钥解密。私钥数字签名,公钥验证。

  • iOS逆向-RSA的使用-证书签名、代码签名(手动签名、脚本自动

    一:APP证书、APP 的签名与解密(低级签名) 3.1 公钥和私钥(公钥也是私钥加密过的)3.2 公钥加密,私钥...

  • 证书和签名 2021-08-29

    数字签名 用私钥加密消息即可得到数字签名,用公钥解密签名称为验证签名只有持有私钥的用户可以生成签名,而由于公钥的公...

  • 数字签名

    签名:用私钥加密 验证:用公钥解密 加密:用公钥加密 解密:用私钥解密 数字签名签名的数据 数字签名主要使用来做数...

  • 公钥 私钥 签名 验签 说的啥?

    公钥 私钥 签名 验签 说的啥? 公钥加密,私钥解密 私钥签名,公钥验签 散列算法 散列算法,也叫做哈希函数,是从...

  • 公钥私钥

    公钥负责加密,私钥负责解密;私钥负责签名,公钥负责验证。

  • 公钥、私钥一句话说明

    公钥负责加密,私钥负责解密;私钥负责签名,公钥负责验证。

  • 加密相关

    公钥加密 私钥解密 ,私钥加密,公钥验证(签名) HTTPS -- AFSecurityPolicy RSA ...

网友评论

      本文标题:fabric-sdk-java 私钥签名

      本文链接:https://www.haomeiwen.com/subject/snvuaqtx.html