他のコンピュータの crypt()

他のコンピュータの crypt()

ハードウェアの問題により必要なもの多くの仮想ユーザーの移行新しい機械で。パスワードはMySQLに保存され、以下を使用して暗号化されます。ENCRYPT最終使用crypt()

私は間違っているかもしれませんが、salt パスワードを保存するときに何も追加されなかったので、完全にランダムです。私の基本的なアイデアは、データベースをダンプしてからインポートすることです。同じ文字列を同じコンピュータに保存しようとすると、ENCRYPT別の結果が表示されます。ユーザーのパスワードを新しいシステムで使用できますか?

環境と暗号化方式の更新:

  • Debian EtchとMySQL 5.0を実行している古いマシン
  • 新しいシステムはDebian SqueezeとMySQL 5.1を実行します。
  • 暗号化方法はMySQLのデフォルトです。ENCRYPT
  • 塩を入れていないことがわかりました
  • パスワードがわからない

フィードバックをありがとう、Fabric

ベストアンサー1

提供されたリンクからENCRYPT()

saltパラメータが指定されていない場合は、任意の値が使用されます。

salt暗号化されたテキストの先頭に格納されている2桁の文字列。たとえば、salt = 'df'で文字列を暗号化するには、 'df'が出力製品の先頭にあります。

mysql> SELECT ENCRYPT('hello','df');
+-----------------------+
| ENCRYPT('hello','df') |
+-----------------------+
| dfbVa429UeC0U         | 
+-----------------------+
1 row in set (0.00 sec)

別の例を挙げるべきではありません。salt

mysql> SELECT ENCRYPT('hello');
+------------------+
| ENCRYPT('hello') |
+------------------+
| oBSydDfeNx5ug    | 
+------------------+
1 row in set (0.00 sec)

次に、前の文字列の最初の2文字を次のように使用します。salt

mysql> SELECT ENCRYPT('hello','oB');
+-----------------------+
| ENCRYPT('hello','oB') |
+-----------------------+
| oBSydDfeNx5ug         | 
+-----------------------+
1 row in set (0.00 sec)

同じ出力。

問題は発生しない可能性が高いですが、100%確実に(暗号化の実装は同じです)、古いシステムにテストアカウントを作成して新しいシステムに移行してください。パスワードが両方に適していることを確認してください。

編集する:

saltはいいつもパスワードで暗号化された文字列の最初の文字に保存されます。持つ絶対 saltこの機能がなく、この機能がないと、saltユーザーは最初に古いコンピュータにログインできません。パスワードを知る必要もなく、知る必要もありません。

エッチングからスクレープに移行する場合、最も賢明なアプローチはDebian Squeezeを使用してテストサーバーを設定することです。 VirtualBoxゲスト設定など、これを行うためにハードウェアは必要ありません。次に、古いコンピュータで新しいユーザーを作成し、そのアカウントをテストコンピュータに移行します。両方のコンピュータでパスワードが機能している場合、問題はありません。これが99.9%確信できる唯一の方法です。それにもかかわらず、移行テストは必須であり、これが原因で発生するより多くの問題について心配する必要があります。

おすすめ記事