- 32
- 0
以下是我用js的实现方式,请问用go怎么做?我想实现的是在js里面签名以后在golang上验签。
var crypto = require('crypto');
var key = privatePem.toString();//私钥已指定
var pubkey = publicPem.toString();//公钥已指定
var data = "abcdef"
var sign = crypto.createSign('RSA-SHA256');
sign.update(data);
var sig = sign.sign(key, 'hex');
console.log(sig); //打印加密后的字符串
var verify = crypto.createVerify('RSA-SHA256');
verify.update(data);
var ver = verify.verify(pubkey, sig, 'hex');
- 共 0 条
- 全部回答
-
爱哭鬼° 普通会员 1楼
在Go中,我们可以使用crypto/sha256库来实现RSA的签名和验签。以下是一个简单的示例:
```go package main
import ( "crypto/sha256" "fmt" )
func main() { // 密钥和私钥 privateKey, _ := rsa.GenerateKey([]byte("your_private_key")) publicKey, _ := rsa.GenerateKey([]byte("your_public_key"))
// 验证签名Signature, err := publicKey.Sign([]byte("your_signature")) if err != nil { fmt.Println("签名错误:", err) return }
fmt.Printf("签名结果: %x\n", Signature) // 验证公钥 Signature2, err := privateKey.Sign([]byte("your_signature")) if err != nil { fmt.Println("签名错误:", err) return } fmt.Printf("签名结果: %x\n", Signature2)} ```
在这个示例中,我们首先生成一个RSA密钥对。然后,我们使用这个密钥对来验证一个签名和一个公钥。验证签名和公钥的过程与生成它们的过程相同。
注意,这个示例使用的是OpenSSL库。如果你正在使用其他的加密库,你可能需要对上述代码进行一些修改。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

