2016-05-05 38 views
2

私は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 

私の信念は、私がしようとすると、パスワードを解読する場合は暗号化されたパスワードが令状される前ので、読むか、書くファイルは、ファイルの内容に何かを追加していることですファイルから読み込んだり、読み込んだりすると正常に動作します。どんな助けもありがとう。

もっとコードが必要な場合は、後で詳しくお伝えください。

編集:label = []byte(product)とあなたの暗号化関数を呼び出している行167でhttps://codeshare.io/PtMxk

+0

ファイルの読み書きは、データを変更することはありません。メモリ内のバッファに書き込んだり読み込んだりすることで、これを簡単にテストできます。 (また、あなたのコードを正しくフォーマットしてください) – JimB

答えて

3

:ここに私のコード全体でコードシェアへのリンクです。そのための

ラインあなたが定義されているが初期化されていませんされています label変数を使用して復号化機能を呼び出している120で

(つまり、あなたが送信している空のバイト配列)

decrypted = decrypt_oaep(private_key, encrypted, label) 

、あなたの復号化はしません作業。解読コール(ライン120)ラベルパラメータとして[]byte(product)を送って : - :ドキュメントからhttps://golang.org/pkg/crypto/rsa/#DecryptOAEP

ソリューション を暗号化する際に

labelパラメータは、与えられた値と一致する必要があります。

関連する問題