teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

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

2017/10/03 03:02

投稿

mit0223
mit0223

スコア3401

answer CHANGED
@@ -12,7 +12,13 @@
12
12
  ---
13
13
  コメントに記載しておりましたが、回答に転記しておきます。
14
14
 
15
- ruby のコードを見ましたが、Salt を暗号化と復号化のコード間で共有できていないので、無理ではないでしょうか?一般的に Passwrod Based Encryption をSalt 付きで使用する場合、Salt は暗号化側で乱数生成し、その値を暗号化データと一緒に送るのが普通です。
15
+ ruby のコードを見ましたが、Salt を暗号化と復号化のコード間で共有できていないので、無理ではないでしょうか?一般的に Password Based Encryption (PBEと略)をSalt 付きで使用する場合、Salt は暗号化側で乱数生成し、その値を暗号化データと一緒に送るのが普通です。PBEでは、Salt は Password にふりかけた後、ハッシュされ、これを暗号化鍵として使用します。毎回違う鍵で暗号化されるところがみそです。
16
16
 
17
17
  たとえば、 openssl コマンドと互換にするのであれば、 "Salted__"というプリフィックスをつけて、 Salt 、暗号化データの順で文字列結合します。
18
- 参考:[openssl の暗号化と同等のrubyでの処理](http://takuya-1st.hatenablog.jp/entry/2015/12/10/155321)
18
+ 参考:[openssl の暗号化と同等のrubyでの処理](http://takuya-1st.hatenablog.jp/entry/2015/12/10/155321)
19
+
20
+ CryptoJS 側もデフォルトは openssl 互換フォーマットのようですので、この後の進め方として、
21
+ 1. ruby 側を上記参考サイトに従って、 openssl コマンド互換にする
22
+ 2. openssl コマンドで復号化できることを確認する。
23
+ 3. それを Javascript に送って復号化する。
24
+ とされてはいかがでしょうか。

2

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

2017/10/03 03:02

投稿

mit0223
mit0223

スコア3401

answer CHANGED
@@ -15,4 +15,4 @@
15
15
  ruby のコードを見ましたが、Salt を暗号化と復号化のコード間で共有できていないので、無理ではないでしょうか?一般的に Passwrod Based Encryption をSalt 付きで使用する場合、Salt は暗号化側で乱数生成し、その値を暗号化データと一緒に送るのが普通です。
16
16
 
17
17
  たとえば、 openssl コマンドと互換にするのであれば、 "Salted__"というプリフィックスをつけて、 Salt 、暗号化データの順で文字列結合します。
18
- 参考:http://takuya-1st.hatenablog.jp/entry/2015/12/10/155321
18
+ 参考:[openssl の暗号化と同等のrubyでの処理](http://takuya-1st.hatenablog.jp/entry/2015/12/10/155321)

1

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

2017/10/03 02:52

投稿

mit0223
mit0223

スコア3401

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