我正在设计一种加密方案来将文件发送到嵌入式设备。开发人员可以通过共享公钥登录,因此使用相同的密钥加密/解密发送给它的文件是有意义的。文件只由开发者打包,所以这个公钥永远不会被泄露。
发送的文件只需要足够安全以使其难以解密,而不是任何 NSA 质量或任何东西。
我可以使用这样的东西加密/解密:
cat file | openssl [-d] aes-256-cbc -kfile path/to/public/key > outfile.aes
这很好用,除了我想在服务器代码中执行此操作。我可以掏出钱,但我宁愿用代码来做。
我从密钥中获取了 base64 数据,但是当我对其进行解码时,我得到了一个 279 字节的数组,但我需要一个 256 位密钥(32 字节)。
openssl 究竟对密钥文件做了什么,我如何在代码中模拟它?
我试过man openssl
了,但我没有发现任何有用的东西。
如果这很重要,我会在 Go 中执行此操作。