会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: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))
} 大佬牛批,论坛都是人才辈出 mz135135 发表于 2020-7-20 17:54
你的需求
package main
你好,我现在是对接别人的接口,需要把公钥和私钥指定的和他们的加解密用的一样吗?要是需要的话我如何设置和他们一样的公钥和私钥呀? 感谢分享 大佬牛逼 540558233 发表于 2020-7-20 18:04
你好,我现在是对接别人的接口,需要把公钥和私钥指定的和他们的加解密用的一样吗?要是需要的话我如何设 ...
是不是浙江的项目啊 消防支队?? CharlesOWen 发表于 2020-7-20 19:16
是不是浙江的项目啊 消防支队??
不是的,海南的项目。 看着像是国密sm2加密 快乐小风 发表于 2020-7-20 19:58
看着像是国密sm2加密
对接的时候他们确实是说的国密
页:
[1]
2