回答編集履歴

3

ちょっとだけ、解説を追加し、この後の進め方について提案を追加しました

2017/10/03 03:02

投稿

mit0223
mit0223

スコア3401

test CHANGED
@@ -26,10 +26,22 @@
26
26
 
27
27
 
28
28
 
29
- ruby のコードを見ましたが、Salt を暗号化と復号化のコード間で共有できていないので、無理ではないでしょうか?一般的に Passwrod Based Encryption をSalt 付きで使用する場合、Salt は暗号化側で乱数生成し、その値を暗号化データと一緒に送るのが普通です。
29
+ ruby のコードを見ましたが、Salt を暗号化と復号化のコード間で共有できていないので、無理ではないでしょうか?一般的に Password Based Encryption (PBEと略)をSalt 付きで使用する場合、Salt は暗号化側で乱数生成し、その値を暗号化データと一緒に送るのが普通です。PBEでは、Salt は Password にふりかけた後、ハッシュされ、これを暗号化鍵として使用します。毎回違う鍵で暗号化されるところがみそです。
30
30
 
31
31
 
32
32
 
33
33
  たとえば、 openssl コマンドと互換にするのであれば、 "Salted__"というプリフィックスをつけて、 Salt 、暗号化データの順で文字列結合します。
34
34
 
35
35
  参考:[openssl の暗号化と同等のrubyでの処理](http://takuya-1st.hatenablog.jp/entry/2015/12/10/155321)
36
+
37
+
38
+
39
+ CryptoJS 側もデフォルトは openssl 互換フォーマットのようですので、この後の進め方として、
40
+
41
+ 1. ruby 側を上記参考サイトに従って、 openssl コマンド互換にする
42
+
43
+ 2. openssl コマンドで復号化できることを確認する。
44
+
45
+ 3. それを Javascript に送って復号化する。
46
+
47
+ とされてはいかがでしょうか。

2

参考のリンクがリンクになってなかったので修正

2017/10/03 03:02

投稿

mit0223
mit0223

スコア3401

test CHANGED
@@ -32,4 +32,4 @@
32
32
 
33
33
  たとえば、 openssl コマンドと互換にするのであれば、 "Salted__"というプリフィックスをつけて、 Salt 、暗号化データの順で文字列結合します。
34
34
 
35
- 参考:http://takuya-1st.hatenablog.jp/entry/2015/12/10/155321
35
+ 参考:[openssl の暗号化と同等のrubyでの処理](http://takuya-1st.hatenablog.jp/entry/2015/12/10/155321)

1

Salt について追記しました。

2017/10/03 02:52

投稿

mit0223
mit0223

スコア3401

test CHANGED
@@ -17,3 +17,19 @@
17
17
  とすれば、復号化された文字列が見えるのではないでしょうか?
18
18
 
19
19
  すみません、未検証です。
20
+
21
+
22
+
23
+ ---
24
+
25
+ コメントに記載しておりましたが、回答に転記しておきます。
26
+
27
+
28
+
29
+ ruby のコードを見ましたが、Salt を暗号化と復号化のコード間で共有できていないので、無理ではないでしょうか?一般的に Passwrod Based Encryption をSalt 付きで使用する場合、Salt は暗号化側で乱数生成し、その値を暗号化データと一緒に送るのが普通です。
30
+
31
+
32
+
33
+ たとえば、 openssl コマンドと互換にするのであれば、 "Salted__"というプリフィックスをつけて、 Salt 、暗号化データの順で文字列結合します。
34
+
35
+ 参考:http://takuya-1st.hatenablog.jp/entry/2015/12/10/155321