golang加密密码。块/AES密钥本身
我正在使用类型为golang加密密码。块/AES密钥本身,go,encryption,aes,encryption-asymmetric,Go,Encryption,Aes,Encryption Asymmetric,我正在使用类型为cipher.Block的AES密钥,该密钥是使用crypto/AES包生成的,具有以下功能: aesBlock, err := aes.NewCipher(randKey) 我用它来加密一组特定的数据,但之后我想用公钥加密aesBlock本身,这样我就可以存储并稍后用非对称私钥解密。然而,我很难找到加密aesBlock的最佳方法。显然,这需要是可逆的,以便我可以使用它来解密前面提到的数据 fromcrypto/aes似乎很合适,因为它需要一个*公钥,但是msg参数的类型是[]
cipher.Block
的AES密钥,该密钥是使用crypto/AES
包生成的,具有以下功能:
aesBlock, err := aes.NewCipher(randKey)
我用它来加密一组特定的数据,但之后我想用公钥加密aesBlock
本身,这样我就可以存储并稍后用非对称私钥解密。然而,我很难找到加密aesBlock的最佳方法。显然,这需要是可逆的,以便我可以使用它来解密前面提到的数据
fromcrypto/aes
似乎很合适,因为它需要一个*公钥
,但是msg
参数的类型是[]字节
,我的aes密钥的类型是密码.Block
。不确定直接转换是可能的,甚至不是一个好主意
有什么想法吗?正如阿德里安在评论中指出的,解决方案比我想象的要简单。您只需加密并存储
randKey
。使用解密的randKey
重新生成aesBlock
会产生相同的结果。为什么要尝试加密aesBlock
本身?只需加密和存储randKey
,并根据需要创建一个新的aesBlock
。使用randKey
是否会重新创建相同的aesBlock
?我想我认为这更像是一种盐,有助于进一步随机化aesBlock
。嗯,你是对的,我刚刚测试过。真不敢相信我竟然没有意识到这一点。谢谢你的帮忙。