540558233 发表于 2020-7-20 17:48

会java和go的大佬帮帮忙,把这段代码用go实现以下,谢谢!

package com.hanweb.front;


import sviolet.smcrypto.Sm2Key;
import sviolet.smcrypto.SmCryptoUtil;

public class Sm2Test {
       

        public static void main(String[] args) {
                //生成密钥
                Sm2Key key2 = SmCryptoUtil.createSm2Key();
                //公钥
      System.out.println(key2.getPublicKey());
      //私钥
      System.out.println(key2.getPrivateKey());
               String data="加解密数据";
               //公钥
               String publicKeysm2 = "aaaaaaaaaaaa";
               //私钥
               String privateKeysm2 = "bbbbbbbbb";
         //数据加密
               String sm2Encode = SmCryptoUtil.sm2Encode(data, publicKeysm2);
         System.out.println(sm2Encode);
         //数据解密
         String sm2Decode = SmCryptoUtil.sm2Decode(sm2Encode, privateKeysm2);
         System.out.println(sm2Decode);
      
      
        }

}

小弟不懂java也不太懂加密,别人给了一段java加密代码,现在对接接口需要我用go实现一套,大佬帮帮忙,谢谢。

mz135135 发表于 2020-7-20 17:54

本帖最后由 mz135135 于 2020-7-20 17:55 编辑

你的需求

package main

import (
        "github.com/tjfoc/gmsm/sm2"
        "fmt"
        "encoding/hex"
)

func main() {

    //生成私钥
        privateKey, e := sm2.GenerateKey()
        if e!=nil{
                fmt.Println("sm2 encrypt faild!")
        }
    //从私钥中获取公钥
        pubkey := &privateKey.PublicKey

        msg:=[]byte("i am   wek &&i am The_Reader too 。")
    //用公钥加密msg
        bytes, i := pubkey.Encrypt(msg)

        if i !=nil{
                fmt.Println("使用私钥加密失败!")
        }
   
        fmt.Println("the encrypt msg=",hex.EncodeToString(bytes))
    //用私钥解密msg
        decrypt, i2 := privateKey.Decrypt(bytes)
        if i2 != nil{
                fmt.Println("使用私钥解密失败!")
        }
        fmt.Println( "the msg= ", string(decrypt))

}

liujieaipojie 发表于 2020-7-20 17:56

大佬牛批,论坛都是人才辈出

540558233 发表于 2020-7-20 18:04

mz135135 发表于 2020-7-20 17:54
你的需求

package main


你好,我现在是对接别人的接口,需要把公钥和私钥指定的和他们的加解密用的一样吗?要是需要的话我如何设置和他们一样的公钥和私钥呀?

我想做个好人 发表于 2020-7-20 18:41

感谢分享

vethenc 发表于 2020-7-20 18:50

大佬牛逼

CharlesOWen 发表于 2020-7-20 19:16

540558233 发表于 2020-7-20 18:04
你好,我现在是对接别人的接口,需要把公钥和私钥指定的和他们的加解密用的一样吗?要是需要的话我如何设 ...

是不是浙江的项目啊 消防支队??

540558233 发表于 2020-7-20 19:58

CharlesOWen 发表于 2020-7-20 19:16
是不是浙江的项目啊 消防支队??

不是的,海南的项目。

快乐小风 发表于 2020-7-20 19:58

看着像是国密sm2加密

540558233 发表于 2020-7-20 20:03

快乐小风 发表于 2020-7-20 19:58
看着像是国密sm2加密

对接的时候他们确实是说的国密
页: [1] 2
查看完整版本: 会java和go的大佬帮帮忙,把这段代码用go实现以下,谢谢!