- PR -

JAVAでの暗号化について

投稿者投稿内容
hidemaru
常連さん
会議室デビュー日: 2004/03/22
投稿数: 44
投稿日時: 2004-03-22 15:30
PHPが主体のWEBシステムで、PHPの暗号化でログインのパスワードを
保存して、チェックをしています。
(ちなみに、PHPのcrypt()関数です。)
これを、JAVAで同じようにチェックを行いたいのですが、
どの暗号化を見ても、同様のものが見当たりません。
どなたが、ご存知の方がいらっしゃいましたら、
教えていただけないでしょうか?
反対に、JAVAの暗号化で、PHPのcrypt()関数以外に
対応する暗号化関数があれば、それでも結構です。
でくのぼう
大ベテラン
会議室デビュー日: 2003/10/06
投稿数: 162
投稿日時: 2004-03-22 16:19
java.security.MessageDigest
を使われてはどうですか?
でゅうく
大ベテラン
会議室デビュー日: 2003/11/30
投稿数: 129
投稿日時: 2004-03-22 16:20
PHP の crypt() 関数を知らないので、ハズしていたらごめんなさい。
以下は、JDK が 1.4 以上を前提にしています。

Des 等の秘密暗号鍵方式の暗号を扱いたいのでしたら、 Cipher クラスです。

Cipher (Blowfish) の例

[ メッセージ編集済み 編集者: でゅうく 編集日時 2004-03-22 16:23 ]
aa
ぬし
会議室デビュー日: 2004/01/08
投稿数: 299
投稿日時: 2004-03-22 19:58
crypt() はperlにもありますね。
以前、2chのトリップ機能を調べてたときに C言語のソースで同じ関数が
作られているものをインターネットのどこかで見たことがあります。
(手元にそのときのソースがあるのですが、でどこを覚えていないので
ちょっと著作権上、勝手に掲載するわけにいきません。)

アルゴリズムが公開されているはずですから、自作可能だと思います。
crypt、拡大型転置、縮約型転置、内部鍵、共通鍵、暗号あたりで
検索かけたら情報を得られると思います。
びしばし
大ベテラン
会議室デビュー日: 2002/03/13
投稿数: 181
投稿日時: 2004-03-22 20:05
いわゆる「UNIX crypt」ですね。
「UNIX crypt java」で検索してみましょう。
シュン
ぬし
会議室デビュー日: 2004/01/06
投稿数: 328
お住まい・勤務地: 東京都
投稿日時: 2004-03-23 11:06
JDK1.4でコアAPIにバンドルされたJCA(暗号化アーキテクチャの拡張API)は、
JDK1.2、1.3でも使用することが可能です。

http://java.sun.com/products/jce/index.jsp

ということで。
hidemaru
常連さん
会議室デビュー日: 2004/03/22
投稿数: 44
投稿日時: 2004-03-23 13:23
皆様、お返事ありがとうございます。
PHPのcrypt()関数についての説明が足らなかったと思います。
この関数は、Unix 標準の DES 暗号を使って文字列を暗号化するもので、
使用方法は、
A = crypt("文字列");
これで、文字列がDESによって暗号化されて、A に代入されます。
ただし、その時に、暗号化のベースとなる 2 文字の'salt' 文字列を
指定するのですが、これが、通常無指定のことがあって、
無指定だと、出力の最初の2文字をsalt として使用します。
こういう、暗号鍵を使ったJAVAの関数が見当たらなくて、
java.security
javax.crypto
javax.crypto.spec
等を使って、SecretKeySpec で試してみたのですが、同じではないようです。

鍵の部分で、どういう指定をすれば、このPHPの暗号化と同じ、
鍵の指定が出来るのかが、わからない状態です。
また何か情報がありましたら、お願いいたします。
びしばし
大ベテラン
会議室デビュー日: 2002/03/13
投稿数: 181
投稿日時: 2004-03-23 14:58
UNIX crypt について本当に調べられましたか ?

暗号時: salt が指定されていないときはランダムに 2文字生成して salt として暗号に使用します。
復号時: 暗号済み文字列の頭 2文字を salt として復号します。

質問が暗号時のものでしたら「PHP と同じ乱数生成プログラムを用意しない限り不可能です」(というか、そういうこと(同じ暗号文字列を作成すること)は意味がない)。
復号時のものでしたら「上記の通り復号には問題ありません」。
となります。

[追記]
勘違いしてました。復号はできませんね。
実際の使用方法は次の発言に書きました。

[ メッセージ編集済み 編集者: びしばし 編集日時 2004-03-23 16:56 ]

スキルアップ/キャリアアップ(JOB@IT)