質問編集履歴
8
文面を改良
title
CHANGED
File without changes
|
body
CHANGED
@@ -170,6 +170,8 @@
|
|
170
170
|
|
171
171
|
ここまで試したところで少し疲れてしまいまして、パターンが多すぎて混乱しています。そもそもものすごく簡単なことを遠回りに実装しているような気もしてきました。
|
172
172
|
|
173
|
+
一体、RubyのString#cryptと同じ暗号化文字列をnode.jsで出力するにはどうすれば良いのでしょうか。
|
174
|
+
|
173
175
|
以下の質問事項
|
174
176
|
|
175
177
|
0. node環境でRubyのString#cryptと同じアルゴリズムの暗号化関数を使うにはどうすれば良いですか?
|
7
文章を変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -162,13 +162,13 @@
|
|
162
162
|
|
163
163
|
うまくいったか!?と期待したのですが、どうやらString#cryptとそれに利用されているsaltを使って出力した文字列とは異なるようでした。
|
164
164
|
|
165
|
-
そもそも、RubyのString#cryptが出力する文字列は```'ha4NAXDFh4S3c'```のような文字列であり、上記の出力結果はどうみても16進数の数値になっているように見えます。
|
165
|
+
そもそも、RubyのString#cryptが出力する文字列は```'ha4NAXDFh4S3c'```のような文字列であり、上記の出力結果はどうみても16進数の数値文字列になっているように見えます。
|
166
166
|
|
167
167
|
引数に```'hex'```を指定しているので当然だろうということで、引数を削ってみたのですがうまく出力できませんでした。
|
168
168
|
|
169
|
-
こういう時はドキュメントをしっかり読むことだと思いまして[ここら辺](https://nodejs.org/api/crypto.html#crypto_cipher_update_data_input_encoding_output_encoding)を見てみると、どうやらencodingは```utf8```以外に```ascii```や```latin1```を指定できるようで、また出力方法も```hex```以外に```latin1```や```base64```が指定できるようでした。
|
169
|
+
こういう時はドキュメントをしっかり読むことが大切だと思いまして[ここら辺](https://nodejs.org/api/crypto.html#crypto_cipher_update_data_input_encoding_output_encoding)を見てみると、どうやらencodingは```utf8```以外に```ascii```や```latin1```を指定できるようで、また出力方法も```hex```以外に```latin1```や```base64```が指定できるようでした。
|
170
170
|
|
171
|
-
ここまで試したところで少し疲れてしまいまして、
|
171
|
+
ここまで試したところで少し疲れてしまいまして、パターンが多すぎて混乱しています。そもそもものすごく簡単なことを遠回りに実装しているような気もしてきました。
|
172
172
|
|
173
173
|
以下の質問事項
|
174
174
|
|
6
文章を修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -162,6 +162,12 @@
|
|
162
162
|
|
163
163
|
うまくいったか!?と期待したのですが、どうやらString#cryptとそれに利用されているsaltを使って出力した文字列とは異なるようでした。
|
164
164
|
|
165
|
+
そもそも、RubyのString#cryptが出力する文字列は```'ha4NAXDFh4S3c'```のような文字列であり、上記の出力結果はどうみても16進数の数値になっているように見えます。
|
166
|
+
|
167
|
+
引数に```'hex'```を指定しているので当然だろうということで、引数を削ってみたのですがうまく出力できませんでした。
|
168
|
+
|
169
|
+
こういう時はドキュメントをしっかり読むことだと思いまして[ここら辺](https://nodejs.org/api/crypto.html#crypto_cipher_update_data_input_encoding_output_encoding)を見てみると、どうやらencodingは```utf8```以外に```ascii```や```latin1```を指定できるようで、また出力方法も```hex```以外に```latin1```や```base64```が指定できるようでした。
|
170
|
+
|
165
171
|
ここまで試したところで少し疲れてしまいまして、どこが間違っているかなどの指摘も含め何かアドバイスをいただけたら...と思いまして質問させていただきました。
|
166
172
|
|
167
173
|
以下の質問事項
|
5
文面を修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -17,7 +17,7 @@
|
|
17
17
|
0. node環境でRubyのString#cryptと同じアルゴリズムの暗号化関数を使うにはどうすれば良いですか?
|
18
18
|
0. パスワードの暗号化に使うアルゴリズムはSHA256で問題ないですか?
|
19
19
|
|
20
|
-
1に関しまして
|
20
|
+
ここからは作業の履歴になりますが、1に関しまして調査したところDESまたはcrypt(3)というアルゴリズムが使われているのかな?と推測しているのですが、暗号化についてあまり詳しくないために確証が持てていません。
|
21
21
|
|
22
22
|
わからないならとにかくやってみよう!と思い、とりあえずDESアルゴリズムが利用できる暗号化モジュールを探してみたところ以下が見つかりました。
|
23
23
|
|
4
誤字を修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
そのサービスのユーザデータは全てデータベース(MySQL)に保存されており、パスワードがRubyのString#cryptによって暗号化されて保存されていることがわかりました。
|
4
4
|
|
5
|
-
|
5
|
+
プロジェクトファイルのconfigには暗号化に必要なsalt文字列も記載されていたのでString#cryptで利用されている暗号化アルゴリズムとconfigに記載されているsaltを利用すれば異なる環境でも同じ暗号化文字列を出力することができると考えています。
|
6
6
|
|
7
7
|
現在、サービスの環境をrubyからnodeに切り替えている最中なのですが、古いサービスと新しいサービスとでパスワードの暗号化アルゴリズムが異なっています。
|
8
8
|
|
3
誤字を修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Ruby2.3.0p0で動作していた古いサービスがあります。
|
2
2
|
|
3
|
-
そのサービスのユーザデータは全てデータベース(MySQL)に保存されており、パスワードがRubyのString#cryptによって暗号化されて保存されてい
|
3
|
+
そのサービスのユーザデータは全てデータベース(MySQL)に保存されており、パスワードがRubyのString#cryptによって暗号化されて保存されていることがわかりました。
|
4
4
|
|
5
5
|
サービスのconfigファイルには暗号化に必要なsalt文字列も記載されているのでString#cryptで利用されている暗号化アルゴリズムとconfigに記載されているsaltを利用すれば異なる環境でも同じ暗号化文字列を出力することができると考えています。
|
6
6
|
|
2
タイトルを変更
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
RubyのString#cryptと同じ暗号化文字列をnode.jsで
|
1
|
+
RubyのString#cryptと同じ暗号化文字列をnode.jsで出力するにはどうすれば良いですか?
|
body
CHANGED
File without changes
|
1
文面の追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -160,4 +160,15 @@
|
|
160
160
|
// '390910129cef7a1c'
|
161
161
|
```
|
162
162
|
|
163
|
-
うまくいったか!?と期待したのですが、どうやらString#cryptとそれに利用されているsaltを使って出力した文字列とは異なるようで
|
163
|
+
うまくいったか!?と期待したのですが、どうやらString#cryptとそれに利用されているsaltを使って出力した文字列とは異なるようでした。
|
164
|
+
|
165
|
+
ここまで試したところで少し疲れてしまいまして、どこが間違っているかなどの指摘も含め何かアドバイスをいただけたら...と思いまして質問させていただきました。
|
166
|
+
|
167
|
+
以下の質問事項
|
168
|
+
|
169
|
+
0. node環境でRubyのString#cryptと同じアルゴリズムの暗号化関数を使うにはどうすれば良いですか?
|
170
|
+
0. パスワードの暗号化に使うアルゴリズムはSHA256で問題ないですか?
|
171
|
+
|
172
|
+
に加えて、何か気になることがございましたら指摘していただけると助かります。
|
173
|
+
|
174
|
+
宜しくお願いいたします。m(_ _)m
|