2017-01-27 26 views
-1

は、だから私は、このデータ Node.jsの復号化暗号化されたファイル有する塩

{"encryption_iv":"ag5BHpO+NfmChFZXSr4kCA==","encryption_salt":"fiGyeCMwtWc=","filename":"file.maFile"} 

を持っていると私は私が持っているキーと塩を使用してこのデータを復号化したいが、私はそれを作るためにどのようには考えています。私はnodejsプラグイン file-encryptorで試してみましたが、うまくいきませんでした。

const encryptor = require('file-encryptor'); 

var text = encryptor.decryptFile('./maFiles/***.maFile', './maFiles/output_file.txt', 'dHM8e22vEoc=', function(err) { 
    // Decryption complete. 
    console.error(err); 
}); 

console.log(text); 
+0

"salt"は、通常、キー導出機能を介してパスフレーズと組み合わされて、実際の暗号化キーを生成します。内容を解読するために鍵を生成するために使用されたパスワードとKDFを知る必要があります。 – Andy

+0

@Andy私はパスワードも知っていますが、これを解読する方法は? – Sandra

+0

完全に回答するのに十分な情報(KDFが使用した暗号ブロック操作モードなど)がありません。私の提案は次のようになります: 1.暗号化コードを見てください/彼らのプロセスに関するデータを暗号化している人と話してください。 2.ファイル暗号化の使用例を探します。なぜなら、残念なことに、開発者がチュートリアルをコピーして実稼働環境に配布するだけだからです。 3. salt、password、およびcommon KDF(SHA-n、PBKDF2、bcrypt、scrypt)を使用してキーを派生してみます。これは効果的に「知識の高いクラッキング」なので、ハッシュキャットやJack the Ripperを使ってこれに関するリソースを消費する準備をしてください。 – Andy

答えて

2

提供元のさらなる分析した後、あなたはKDFは50Kの反復でPBKDF2であることをFileEncryptor.csから見ることができます。したがって、PBKDF2のJS実装を使用して、パスワード、塩、繰り返し回数、および望ましい鍵長をパラメータとして提供する必要があります。実際に使用された暗号化キーが返されます。その後、Base64エンコーディングから生のバイナリに暗号バイトをデコードし、AES/CBC/PKCS7Paddingを使用して解読します。

関連する問題