为了账号安全,请及时绑定邮箱和手机立即绑定

从文件中读入

从文件中读入

Go
阿波罗的战车 2022-01-10 10:53:58
我正在努力在 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)作为标签参数发送。


查看完整回答
反对 回复 2022-01-10
  • 1 回答
  • 0 关注
  • 151 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信