質問: decipher.update(ascii, encoding, 'utf8'); dec += decipher.final('utf8'); console.log('decrypted: ' + dec); ``` ### 試したこと https://qiita.com/hm0429/items/2acee723170b32b91304 https://qiita.com/mokemokechicken/items/7dfb4d2a9800426ead9d https://qiita.com/tomi_linka/items/e39e767f77eaca4e82f5 その他もろもろ見ましたが、うまくいきませんでした。 そもそもPHP側で暗号化した場合とJS側で暗号化した際に文字列が言語ごとで異なる理由がわかりません。 (復号方法が違うからなんでしょうが・・・) また、PHPで暗号化する際に'base64'せずに'binary'にすることができましたが、修正後でもエラーが出ており上手く動きません。 ### 補足情報(FW/ツールのバージョンなど) 暗号化する際に『aes-256-ecb』を使用するのはよくないことは承知しております。 ですが、今回は上記を利用したいと考えております。 何卒宜しくお願い致します。
回答: 直接の回答ではないのですが、このスクリプトの目的は何でしょうか? 単なるJavaScrptの練習などであればよいのですが、もしも実用を目指しているのであれば、そもそもの考え方に問題があります。 というのは、ブラウザが受け取る HTMLとJavaScriptが盗聴された場合、暗号化データと鍵がセットで盗まれてしまうので、盗聴者は容易に復号できるからです。とくにプログラムの解読などがっつりやらなくても、デバッガ上で適当なところにブレークポイントを置いて、復号されたタイミングでデータを取得すればよいでしょう。 上記を承知の上で、練習としてやっているならよいのですが、念の為お知らせします。