Golang Go语言中关于RSA公钥解密方法求助

发布于 1周前 作者 caililin 来自 Go语言

有如下公钥

MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC4WFFTZiFNX7AWsi+4QjJvDzDkrTtr+i9hqeloqGY+7Ofv0KLtQ6JH3fl/eEJHNfcs+P7fEs1BmjPqr+AwI5mLRG/CzGLcyHMQdcAG5iGgtyItLAAyFrMxlrQEn7slBKQNCAkZqtAWyQzaTKd9zap3/lo8EM4QGzeN5lgbsD+shQIDAQAB

密文

gbnTrkkYVdtYAIW3zNh6qDYxDlsbCSGQoRGNrTYzKrpmufCDIQcKSHhnV2LGxxmKTw6Ha6gZiWAL0J_-vYgPz1m1q7o26mA1m1F0NPf6FEYxKNO9ZmJ6-y6nNBJI1djFyfw-QS9RzvdJadoXOfTIr7ctP5flqeSqbETlqapMbm0

解密后的结果

LU5jaJ8HhwIzAhVO

需要在 go 中实现通过公钥进行解密得到密文,找了一圈资料,大部份都和下面的差不多 https://github.com/wenzhenxi/gorsa https://gist.github.com/phpor/9fab17314b985898d508

还有其它的看了一下基本都是大同小异,无法正确解密.

在线解密的网站目前只找到了以下这个网站可以正确解密

https://www.devglan.com/online-tools/rsa-encryption-decryption

找好久的资料,还是不能解决 特上来求助,看看有没有大神可帮忙..先谢了:


Golang Go语言中关于RSA公钥解密方法求助

更多关于Golang Go语言中关于RSA公钥解密方法求助的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html

3 回复

因为你的密文是 url safe 的
把-替换成+,_替换成 /
就能正常解密了

更多关于Golang Go语言中关于RSA公钥解密方法求助的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


感谢指点,确实是这个原因.

试了下可以了,没有注意到这个问题 ^_^

在Go语言中,RSA公钥通常用于加密数据,而私钥用于解密数据。这是基于RSA加密算法的基本特性,即公钥是公开的,用于加密信息,而私钥是保密的,用于解密信息和签名。因此,关于“RSA公钥解密方法”的提问,实际上是不符合RSA加密原则的。

如果你确实需要解密数据,应该使用RSA私钥进行解密。以下是一个使用Go语言进行RSA私钥解密的简单示例:

package main

import (
	"crypto/rand"
	"crypto/rsa"
	"crypto/x509"
	"encoding/pem"
	"fmt"
)

func main() {
	// 加载私钥(省略具体加载代码)
	privKey, err := rsa.DecodePKCS1PrivateKey(pem.Decode(privateKeyPEMBlock).Bytes)
	if err != nil {
		fmt.Println("Error decoding private key:", err)
		return
	}

	// 假设ciphertext是已经加密的数据
	ciphertext := []byte{...} // 加密后的数据

	// 使用私钥解密
	label := []byte("")
	plaintext, err := rsa.DecryptPKCS1v15(rand.Reader, privKey, ciphertext, label)
	if err != nil {
		fmt.Println("Error decrypting:", err)
		return
	}

	fmt.Println("Decrypted message:", string(plaintext))
}

请确保你有一个有效的私钥,并且ciphertext是与之对应的加密数据。如果你有其他关于RSA加密或解密的问题,欢迎继续提问。

回到顶部