如何在Go中解密使用Openssl aes-256-cbc加密的文件
我正在使用OpenSSL AES-256-CBC加密我的一些文件如何在Go中解密使用Openssl aes-256-cbc加密的文件,go,encryption,openssl,aes,Go,Encryption,Openssl,Aes,我正在使用OpenSSL AES-256-CBC加密我的一些文件 openssl aes-256-cbc-in filename.txt-out filename.enc-k密码 如何在Go中解密这些文件?我希望这能有所帮助,请确保您在opensslEncrypted变量中读取文件字节: 安装 git clone https://github.com/funny/crypto 解密: import ( "fmt" "github.com/funny/crypto/aes256cbc"
openssl aes-256-cbc-in filename.txt-out filename.enc-k密码
如何在Go中解密这些文件?我希望这能有所帮助,请确保您在opensslEncrypted变量中读取文件字节: 安装
git clone https://github.com/funny/crypto
解密:
import (
"fmt"
"github.com/funny/crypto/aes256cbc"
)
func main() {
opensslEncrypted := "U2FsdGVkX19ZM5qQJGe/d5A/4pccgH+arBGTp+QnWPU="
passphrase := "z4yH36a6zerhfE5427ZV"
dec, err := aes256cbc.DecryptString(passphrase, opensslEncrypted)
if err != nil {
fmt.Printf("An error occurred: %s\n", err)
}
fmt.Printf("Decrypted text: %s\n", string(dec))
}
来源:您是否尝试过这样做:OpenSSL使用非标准、不安全的函数将密码转换为加密密钥。一个选项是自己派生密钥,并使用
-K
选项。有关内置函数如何工作的详细信息,请参阅(您可以将该代码移植到Go中)。我没有看到这里的复杂性,为什么不在Go中使用OpenSSL绑定呢?(例如)@Woodstock添加对OpenSSL的依赖(以及cgo带来的所有痛苦)只是为了解密一个文件,这是相当过分的。Go内置了非常成熟的加密支持