質問: CryptoJS.AES.decrypt({ciphertext:encrypted}, key, options); ---------------------------------------------------------------------------- などが使えそうに思ったのですが、 この場合、saltとivの値が分かりません。 C#の方でsaltとivはbyte配列で求められているので、 これをint32配列に変換したものを試しにjQueryにベタ書きして渡してみたのですが、 CryptoJS.PBKDF2()が"Cannot read preoperty 'length' of undefined"例外を起こします。 上記のソースの問題点のご指摘でも、まったく別のアプローチでも結構です。 C#で暗号化した値をjavascriptで復号化する方法をご教授ください。 よろしくお願い致します。 因みに、jQuery内で比較値をベタで保持した場合にクライアントでは隠しようのないことは、 とりあえずここでは問題にしません。 あくまで暗号化/復号化の方法に焦点を当てたいです。
回答: まず、実現しようとしていること自体が妥当であるかをもう一度ご検討ください。 AES、共通鍵暗号をWebクライアントで復号させるなら、復号に必要な情報はすべてクライアントに渡すことになります。そして、JSの実行時情報はブラウザ上で誰でも覗くことができます。鍵が丸見え、暗号の意味をなしていないということになります。 もし、通信路さえ暗号化できていれば十分であり、Webクライアントのユーザーに鍵が知られることは問題ないというのであれば、それはHTTPSで十分ということになります。 どういった理由で暗号化を必要としているのですか? (追記)あ、最後の最後で、妥当性については今は考えないとありましたか。読み落としていました。