質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

3回答

1868閲覧

CryptJS できない

kimurayu

総合スコア158

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2017/09/28 03:41

編集2017/09/29 07:48

CryptJS を使って AES 復号をしようとしましたが、

Javascript

1CryptoJS.AES.decrypt(text, password); 2 3text : AES暗号化 -> Base64エンコードされた文字列 4password: AESパスワード 5

を実行したら

var ciphertext = Base64.parse(openSSLStr); <= Uncaught TypeError: Cannot read property 'parse' of undefined

となりました。他にcore.js, cipher-core.js, enc-base64.js を読み込みました。
何をすれば良いでしょうか。

javascript

1cipher-core.js 2 3 parse: function (openSSLStr) { 4 // Parse base64 5 var ciphertext = Base64.parse(openSSLStr); <= Uncaught TypeError: Cannot read property 'parse' of undefined 6 7 // Shortcut 8 var ciphertextWords = ciphertext.words; 9 10 // Test for salt 11 if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) { 12 // Extract salt 13 var salt = WordArray.create(ciphertextWords.slice(2, 4)); 14 15 // Remove salt from ciphertext 16 ciphertextWords.splice(0, 4); 17 ciphertext.sigBytes -= 16; 18 } 19 20 return CipherParams.create({ ciphertext: ciphertext, salt: salt }); 21 }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

自己解決

Javascript

1 2 <script charset="UTF-8" type="text/javascript" src="js/crypto-js/core.js"></script> 3 <script charset="UTF-8" type="text/javascript" src="js/crypto-js/md5.js"></script> 4 <script charset="UTF-8" type="text/javascript" src="js/ctypto-js/evpkdf.js"></script> 5 <script charset="UTF-8" type="text/javascript" src="js/crypto-js/cipher-core.js"></script> 6 <script charset="UTF-8" type="text/javascript" src="js/crypto-js/aes.js"></script> 7

これを読み込んだら、

javascript

1CryptoJS.AES.decrypt(password, xhr.response);

この関数は動作しました。(一応エラーは出なかった)

投稿2017/09/30 23:12

編集2017/09/30 23:15
kimurayu

総合スコア158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

失礼しました。回答の書き直しです。

各jsファイルをロードする順番はチェックしましたか?
例えば、cipher-core.js中でBase64がundefinedとなっているのに対しては、
cipher-core.jsよりも先にenc-base64.jsを読み込むようにすることで解決できるのではと思います。

投稿2017/09/29 08:04

othersight

総合スコア356

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kimurayu

2017/09/30 08:44

すみません、直したら他のエラーが出て、それを直すために他のライブラリを読み込んで、またエラーが出て、また読み込んで、とやっていたら読み込むファイルが多くなってしまって、よくわからなくなってきました。Webサイトでは、cdn で aes.js 読み込むだけでOKという記述もあるのですが明らかにできません....使用をやめようと思います。ありがとうございます。
othersight

2017/09/30 12:55

そうですか、それは残念です。
kimurayu

2017/09/30 23:05

その後色々と読み込んでみたらできました。正しい結果が得られていないのでまた別の問題がありますがライブラリ自体は動作したので貼っておきます。ありがとうございます。
guest

0

js

1var ciphertext = CryptoJS.enc.Base64.parse(openSSLStr);

ではないでしょうか。なお、CipherParamsについても同様に、

js

1return CryptoJS.lib.CipherParams.create({ ciphertext: ciphertext, salt: salt });

ではないでしょうか。

投稿2017/09/29 07:41

othersight

総合スコア356

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kimurayu

2017/09/29 07:51 編集

すみません。実行コードを記載していませんでした。 CryptJS を使って AES 復号をしようとしましたが、 CryptoJS.AES.decrypt(text, password); text : AES暗号化 -> Base64エンコードされた文字列 password: AESパスワード を実行したら CryptJS/cipher.js var ciphertext = Base64.parse(openSSLStr); <= Uncaught TypeError: Cannot read property 'parse' of undefined となりました。 CryptJS/cipher-core.js 中においてエラーメッセージが表示されました。
othersight

2017/09/29 08:04

失礼しました。cipher-core.jsの中でのエラーなのですね。 続きは別回答で書き直しますね。
kimurayu

2017/09/29 08:25

すみません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問