草庐IT

c# - 如何在 C# 中解密用 GO 语言加密的 RSA 加密字符串。解码 OAEP 填充时出错

我有一个在c#上运行的应用程序和另一个在go中运行的服务器应用程序。我需要使用rsa实现安全通信。我正在做的是在我的C#应用程序中初始化RSA提供程序并生成公钥以提取模数和指数。然后连接模数(十六进制)和指数(int)并将此字符串转换为Base64字符串,将其发送到GO端点。这是C#代码片段publicstringConvertToPublicKey(){CspParametersrsaParameters=GetCspParameters();RSACryptoServiceProviderprovider=newRSACryptoServiceProvider(rsaParamet

go - 如何在 Go 中解析 RSA 公钥?

为什么我从以下代码中得到错误ssh:shortread:packagemainimport("golang.org/x/crypto/ssh""testing")funcTestPublicKeyParsing(t*testing.T){key:="ssh-rsaAAAAB3NzaC1yc2EAAAADAQABAAABAQDhZgLqiZYDKCWhyi2gUXIRwIPyMSyXZ6yrwsm3PYfIvFB60kVlNgqDpPVhWoH6eRfaQ1y/xbg4nClZmHEDTvLbTQ1ZoQzzjZ7zvM6aQ4nADmKcCYswEuU94axouVjsHNyMLfOk

java - RSA OAEP、Golang 加密、Java 解密 -BadPaddingException : Decryption error

我正在尝试使用RSA-OAEP解密在Golang中加密的字符串。但得到BadPaddingException:解密错误。很难弄清楚我错过了什么..这里是Golang的加密方式funcencryptString(){rootPEM:=io_related.ReadFile("../../resources/pubkey.pem")//fmt.Printf("CertString%q\n",rootPEM)block,_:=pem.Decode([]byte(rootPEM))varcert*x509.Certificatecert,_=x509.ParseCertificate(bloc

go - 将 rsa.PublicKey 转换为 ssh.PublicKey

我有一个rsa.PublicKey,它由结构中的模数和公共(public)指数组成。我想验证用该key签名的ssh.Signature,我想如果我有ssh.PublicKey我可以调用Verify该接口(interface)上的方法。但是,我找不到任何实现ssh.PublicKey并支持从rsa.PublicKey转换的类。我是否需要编写专有方法来执行此操作,或者是否有一些我没有找到的类,或者是否有更好的方法来解决我的问题?对于上下文,我从x509.Certificate中获得了rsa.PublicKey,它来自yubikey,证明其PIV插槽之一中的key。

go - 如何自己产生熵? -RSA 戈朗

我正在使用Golang的RSA加密库。下面是加密消息的函数:funcEncryptOAEP(hashhash.Hash,randomio.Reader,pub*PublicKey,msg[]byte,label[]byte)([]byte,error)随机参数用作熵源,以确保对同一消息加密两次不会产生相同的密文。此参数允许使用linux函数,如getrandom(2)(如果可用)或/dev/urandom(否则通过访问从设备和其他来源收集的环境噪声来充当随机数生成器)。我不希望EncryptOAEP函数使用操作系统的函数(getrandom(2)或/dev/urandom)来生成随机数

go - 如何在 Go 中验证 RSA key 长度?

我正在使用以下函数在Go中设置一个https服务器。err:=http.ListenAndServeTLS(":8080",key,cert,nil)iferr!=nil{log.Fatal("error...")}其中key和cert分别是自签名的key和证书文件。我的问题是,为了安全起见,我需要验证它们的自签名key是否具有2048位大小(或更多)。我如何在Go中安全、干净地检查这个? 最佳答案 packagemainimport("crypto/ecdsa""crypto/rsa""crypto/tls""log""net/h

android - 如何在 Go 和 Android 之间使用 RSA

我(1)在Go中创建公钥并将其发送给Android(2)android使用下面的代码来加密它的数据以字符串类型发送到Go(3)去获取字符串数据并尝试解密它,但它不能。我的Go代码://DecryptWithPrivateKeydecryptsdatawithprivatekeyfuncDecryptWithPrivateKey(ciphertext[]byte,priv*rsa.PrivateKey)[]byte{plaintext,err:=rsa.DecryptPKCS1v15(rand.Reader,priv,ciphertext)iferr!=nil{log.Println(e

Golang 使用 rsa 签署结构

我有一个包含以下字段的结构Transaction,typeTransactionstruct{Senderstring`json:"sender"`Receiverstring`json:"receiver"`Signaturestring`json:"signature"`Amountint64`json:"amount"`}我还有一个函数GetPrivateKey()返回一个*rsa.PrivateKeyfuncGetPrivateKey()(*rsa.PrivateKey,error){key,err:=ioutil.ReadFile("/Users/xxx/.ssh/id_rs

java - 在Java中验证golang生成的rsa.SignPKCS1v15签名

我试图让Java验证签名的SHA-1哈希,但它一直返回false。我在Go中有以下代码,它生成一个RSAkey对并签名并返回任何命中/sign端点的消息以及十六进制编码的哈希和公钥模数和指数:packagemainimport("crypto""crypto/rand""crypto/rsa""encoding/hex""encoding/json""fmt""io""net/http""strconv")varPrivKey*rsa.PrivateKeytypeMessagestruct{Messagestring`json:"message"`}func(msg*Message)D

go - 解析 RSA 公钥时出错

我正在尝试使用以下代码从文件中读取RSA公钥:keyBytes,err:=ioutil.ReadFile("pubkey.pem")iferr!=nil{log.Fatal(err)}block,_:=pem.Decode(keyBytes)fmt.Printf("block.Type:%s\n",block.Type)pubkeyInterface,err:=x509.ParsePKIXPublicKey(block.Bytes)pubkey,ok:=pubkeyInterface.(*rsa.PublicKey)if!ok{log.Fatal("Fatalerror")}ciphe