从文件中读入

我正在努力在 Golang 中制作一个基本的密码管理器,并希望能够存储使用 RSA 加密的密码。我的加密功能和解密功能都可以正常工作,并且可以正确加密和解密。但是,在将密码存储在文件中然后从文件中读取密码后,解密功能会失败。我已经检查以确保 RSA 密钥的读入是正确的,这不是我的问题,因为 RSA 密钥的读入工作正常。这是我将加密密码写入文件的方式


ioutil.WriteFile(filename, encPassword, 0644)

这就是我读回密码的方式


encrypted, err = ioutil.ReadFile(encryptedFileName)

当我运行我的程序时,我目前收到此错误代码


failed in decrypt_oaep: crypto/rsa: decryption error

exit status 1

我的信念是读取或写入文件正在向文件的内容添加一些内容,因为如果我在写入或从文件读取加密密码之前尝试解密密码,它将正常工作。任何帮助,将不胜感激。


如果您需要更多代码,我可以稍后发布更多代码。


编辑:这是我的整个代码的代码共享链接:https : //codeshare.io/PtMxk


阿波罗的战车
浏览 152回答 1
1回答

慕工程0101907

在第 167 行,您使用label = []byte(product).在第 120 行中,您正在使用label已定义但未初始化的变量调用您的解密函数(即您正在发送一个空字节数组)decrypted = decrypt_oaep(private_key, encrypted, label)因此,您的解密将无法正常工作。从文档:label 参数必须与加密时给出的值匹配 - https://golang.org/pkg/crypto/rsa/#DecryptOAEP解决方案: 在解密调用(第 120 行)中[]byte(product)作为标签参数发送。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go