Encryption golang中如何使用rsa密钥对进行AES加密和解密
我想生成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
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))这会生成一个错误。