パスフレーズで文字列を暗号化するコードがあります。それはCryptoJS AESの暗号化機能(CryptoJS.AES.encrypt
)を使用し、このようになります...Forge.jsのCryptoJS AESデータ(パスフレーズ付き)の復号
CryptoJS.AES.encrypt(data, password).toString();
は今後、それが正式に維持/いない非推奨だと私は、CryptoJSを使用したくない、と私はその代わりたいと思いますForge.jsを使用する。私は解決策を見つけるためにGitHub上のForge.jsドキュメントを読み込もうとしましたが、手動でキー& IVを作成するのではなく、パスフレーズを使用するものを見つけることができませんでした。
https://code.google.com/archive/p/crypto-js/でCryptoJSアーカイブを見てきました。encrypt
関数に2番目の引数(キー)として文字列が渡された場合、キーとIVを得るためのパスフレーズとして使用されているようです。しかし、それはどのようにこれを行うの詳細はありません。
結果をデコードすると、Salted__
で始まり、その後にバイナリテキストの暗号化されたBLOBで始まる文字列が得られ、Forgeに "salt"をどのように渡すかわかりません。
Forge.jsのみを使用してこのデータのBlobを解読するにはどうすればよいですか?
私はこれを高く評価します。これは私の質問に対する答えです。私は引用した3DESの例をAESで再利用できることを見落としました。 –
私はあなたの提案を試みた後に私が返信しなかったことを認識します。おそらく私は何かが欠けているかもしれませんが、単に '3DES 'を' AES'に、 'iv'を' ivSize'に '16 'に変更しても同じ結果は得られません。私は偽造が成功したと言っているが、出力は完全に異なっているので、問題が何であるかを捜し出そうとした。だから私はそれがエンコーディング関連の問題かどうか疑問に思う。あまり確かではありません。 –
Forgeは次の文字列を出力します... '1p00¿UÚ@G4WtCÕ5¸«ÑZ¿}Á6©_ͬiñýüʸiÔúÆúÇúÇÃ)&nQOW»AMب3{〜5 = O!¼=W²Ò?次... '----- RSA PRIVATE KEYをBEGIN ----- MIIEowIBAAKCAQEAqSFulewpMjRBLhiiorbvWleD5I [...]' を出力cryptojsとして、私はこれをマークするのが大好きだ[...] ' 正しいコメントとして、しかし今の上のスニペットで、私は誰もこれを見て、同じ問題を抱えて欲しくないでしょう。 –