我正在使用 cipher.Block
类型的 AES key ,该 key 是通过使用具有以下功能的 crypto/aes
包生成的:
aesBlock, err := aes.NewCipher(randKey)
我用它来加密一组特定的数据,但之后我想用公钥加密 aesBlock
本身,这样我就可以存储并稍后用非对称私钥解密。但是,我很难找到加密 aesBlock
的最佳方法。显然这需要是可逆的,这样我才能用它来解密前面提到的数据。
func EncryptOAEP来自 crypto/aes
似乎很合适,因为它需要一个 *PublicKey
,但是 msg
参数的类型是 [] byte
并且我的 AES key 是 cipher.Block
类型。不确定直接转换是否可行,甚至是一个好主意。
有什么想法吗?
最佳答案
正如 Adrian 在评论中指出的那样,解决方案比我想象的要简单。您需要做的就是加密并存储 randKey
。使用解密的 randKey
重新生成 aesBlock
会产生相同的结果。
关于golang 加密 cipher.Block/AES key 本身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46473100/