如何在golang中正确使用crypto / rsa解密函数?

时间:2018-01-05 03:31:47

标签: go rsa

func (priv *PrivateKey) Decrypt(rand io.Reader, ciphertext []byte, opts crypto.DecrypterOpts) (plaintext []byte, err error)

上面是golang crypto / rsa库的一个函数。 我不太明白这里对参数 opts 的解释。

  

解密用priv解密密文。如果opts为零或类型   * PKCS1v15DecryptOptions然后执行PKCS#1 v1.5解密。否则opts必须具有类型* OAEPOptions并且OAEP解密   完成。

我想知道我应该将opts值传递给这个函数?

1 个答案:

答案 0 :(得分:1)

DecryptOpts可以是以下之一:

根据您传入的内容,rsa.Decrypt会调用DecryptOAEPDecryptPKCS1v15(有或没有会话密钥)。

您可以在rsa package examples中找到有关如何使用这些选项的示例。

您要使用哪些选项完全取决于加密时选择的填充。

将来,您可以随时查看source for rsa.Decrypt,它非常清楚它可以处理的内容。