我正在努力在 Golang 中制作一个基本的密码管理器,并希望能够存储使用 RSA 加密的密码。我的加密功能和解密功能都可以正常工作,并且可以正确加密和解密。但是,在将密码存储在文件中然后从文件中读取密码后,解密功能会失败。我已经检查以确保 RSA 密钥的读入是正确的,这不是我的问题,因为 RSA 密钥的读入工作正常。这是我将加密密码写入文件的方式ioutil.WriteFile(filename, encPassword, 0644)这就是我读回密码的方式encrypted, err = ioutil.ReadFile(encryptedFileName)当我运行我的程序时,我目前收到此错误代码failed in decrypt_oaep: crypto/rsa: decryption errorexit status 1我的信念是读取或写入文件正在向文件的内容添加一些内容,因为如果我在写入或从文件读取加密密码之前尝试解密密码,它将正常工作。任何帮助,将不胜感激。如果您需要更多代码,我可以稍后发布更多代码。编辑:这是我的整个代码的代码共享链接:https : //codeshare.io/PtMxk
1 回答
慕工程0101907
TA贡献1887条经验 获得超5个赞
在第 167 行,您使用label = []byte(product)
.
在第 120 行中,您正在使用label
已定义但未初始化的变量调用您的解密函数(即您正在发送一个空字节数组)
decrypted = decrypt_oaep(private_key, encrypted, label)
因此,您的解密将无法正常工作。从文档:
label 参数必须与加密时给出的值匹配 - https://golang.org/pkg/crypto/rsa/#DecryptOAEP
解决方案: 在解密调用(第 120 行)中[]byte(product)
作为标签参数发送。
- 1 回答
- 0 关注
- 151 浏览
添加回答
举报
0/150
提交
取消