Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Encryption golang中如何使用rsa密钥对进行AES加密和解密_Encryption_Go_Cryptography_Aes_Rsa - Fatal编程技术网

Encryption golang中如何使用rsa密钥对进行AES加密和解密

Encryption golang中如何使用rsa密钥对进行AES加密和解密,encryption,go,cryptography,aes,rsa,Encryption,Go,Cryptography,Aes,Rsa,我想生成RSA密钥对(公共和私有),然后使用它们进行AES加密和解密。用于加密的公钥和用于解密的私钥。我为此编写了一个简单的代码,但问题是,当我运行此代码时,会出现以下错误: crypto/aes: invalid key size 1639 我如何解决这个问题??我的加密代码如下所示: //生成私钥 privateKey,err:=rsa.GenerateKey(兰德阅读器,2014) 如果出错!=零{ 回来 } privateKeyDer:=x509.MarshallPKCS1Privat

我想生成RSA密钥对(公共和私有),然后使用它们进行AES加密和解密。用于加密的公钥和用于解密的私钥。我为此编写了一个简单的代码,但问题是,当我运行此代码时,会出现以下错误:

crypto/aes: invalid key size 1639
我如何解决这个问题??我的加密代码如下所示:

//生成私钥
privateKey,err:=rsa.GenerateKey(兰德阅读器,2014)
如果出错!=零{
回来
}
privateKeyDer:=x509.MarshallPKCS1PrivateKey(privateKey)
privateKeyBlock:=pem.Block{
键入:“RSA私钥”,
标题:无,
字节:privateKeyDer,
}
privateKeyPem:=字符串(pem.EncodeToMemory(&privateKeyBlock))
//使用privateKeyPem进行加密
文本:=[]字节(“我的名字是Astaxie”)
密文,err:=加密(文本,[]字节(privateKeyPem))
如果出错!=零{
//TODO:正确处理错误
log.Fatal(错误)
}
fmt.Printf(“%s=>%x\n”,文本,密文)
//encrypt()的定义
func加密(明文[]字节,密钥[]字节)([]字节,错误){
c、 错误:=aes.NewCipher(密钥)
如果错误!=零{
返回零,错误
}
gcm,err:=cipher.NewGCM(c)
如果错误!=零{
返回零,错误
}
nonce:=make([]字节,gcm.NonceSize())
如果389;,err=io.ReadFull(rand.Reader,nonce);err!=nil{
返回零,错误
}
返回gcm.印章(nonce,nonce,明文,无),无
}

正如评论中所建议的,我搜索了“混合加密”。这就解决了我的问题。

哪一行产生了这个错误?
encrypt()
函数的定义是什么?告诉我们你希望aes密码与rsa密钥一起工作吗?@DarkSquirrel42是的,我想在aes密码中使用rsa密钥。我犯了什么错误???@Fimzy encrypt(text,[]字节(privateKeyPem))这会生成一个错误。