- - PR -
JAVAでの暗号化について
| 投稿者 | 投稿内容 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-03-23 16:01
びしばしさん、ありがとうございます。
UNIX の crypt関数については、見てみましたが、 今、使っているのは、PHPでのcrypt()関数なんです。 暗号化としては、同じなのですが、PHPのcrypt()関数は、 暗号化だけで、復合化が出来ない関数です。 ここに、PHPのマニュアルがありますから参考にして下さい。 http://jp2.php.net/manual/ja/function.crypt.php それで、これと同じ暗号化を行うものを、模索しているのですが、 見つからないのです。 プログラム上で、データベースに保存してある、暗号化されたパスワードと、 入力したパスワードを暗号化して、両者を比較するという方法で、 パスワードチェックを行っています。 やはり、MD5でハッシュする方法にPHPも変更して、 PHPとJAVAを両立させないといけないのでしょうか? | ||||||||||||
|
投稿日時: 2004-03-23 16:41
PHPとJavaの2つの入り口から、同一のDBを参照してユーザー確認を行いたい……というような要件ですよね? #で、元々はPHPのものが稼動していたために動作を合わせたい……と。 そして、ダイジェスト(非可逆変換)を使用してパスワード格納・参照を行うことで、システムの安全性を高めるというポリシーですね。 確かに用意されているものを使うのが便利(で確実)な場合が多いのですが、このような場合はダイジェスト部分のロジックはご自分で記述なさった方がいいと思います。 #車輪の再発明みたくなことになっても 理由としては、「細かい検証を行うくらいなら自分で記述した方が早そうだから」と、身も蓋もないものになってしまうのですが……関数自作方式にしておけば、例えばこれに「入り口としてPerlも追加」等となっても大丈夫(のハズ)です。 | ||||||||||||
|
投稿日時: 2004-03-23 16:49
ご紹介のページにはっきりと
とありますよ。
データベースに保存してある暗号化されたパスワードの頭 2文字が salt ですから、それを利用して入力文字列を暗号化してください。そうすれば同じ文字列が得られます。 最初に書いたとおり、google で「UNIX crypt java」で検索してくださいよ。最初に「Java Implementations of Unix Crypt」というまとめページが見つかりますから。 http://www.dynamic.net.au/christos/crypt/ # ここまで書かないとダメだとは。 ご存じのとおり crypt は有効文字数が短いので MD5 に置き換えるという案には賛成です。 | ||||||||||||
|
投稿日時: 2004-03-23 19:06
びしばしさん。ごめんなさい。
私の書き方が良くなかったようです。 知りたかったのは、これをJAVAでコーディングすると 何を使ってコーディングすればいいのかが、よくわからなかったので、 聞いてみたのです。 UNIXのcrypt()関数を、使って暗号化することは了解しています。 頭2文字を使って暗号化することも了解しています。 まだ、JAVAをやり始めて、時間がたっていないので、 JAVAでのコーディングを見つけることが出来なかったので、 質問させていただきました。 確かに、永井さんのおっしゃる通り、 自分で作ったほうが、確実かもしれません。 検討してみます。ありがとうございました。 | ||||||||||||
