- - PR -
Base64エンコード・デコードについて
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-09-08 10:18
早速ですが、暗号化結果のbyte配列をBase64エンコードを行い文字列にしたいと考えています。
いろいろ調べた結果、sun.misc.BASE64Encoderや、sun.misc.BASE64Decoderを使用すれば良いということが分かりました。 ですが、sun.miscパッケージは、非公開クラスのため、出来ることならば使用したくありません。 どなたか、同等の機能を持つモジュールをご存じないでしょうか?製品に組み込みたいので、オープンソース系のライセンスのものが望ましいです。 自分で実装するのは、最終手段だと考えています。 というか、皆さん平気で、sun.miscパッケージを使ってますが、問題があると感じた方は、居られないんでしょうか??? | ||||||||
|
投稿日時: 2005-09-08 10:24
Jakarta Commons Codecにありますよ。
http://jakarta.apache.org/commons/codec/ org.apache.commons.codec.binary.Base64 | ||||||||
|
投稿日時: 2005-09-08 11:05
早速の返答ありがとうございます。
これだと、エンコード結果は、byte配列となるのですね。 BASE64EncoderクラスやBASE64Decoderクラスのように、エンコード結果は、文字列となり、デコード時は、文字列を指定するといった形が理想ですが、仕方がないのでしょうか。 BASE64Encoder/BASE64Decoderをそっくりそのまま置き換えられるものがあればいいのですが・・・ | ||||||||
|
投稿日時: 2005-09-08 11:27
unibon です。こんにちわ。
意外なこととしてはアプレットでは使えない(使うためにはセキュリティーの設定が必要になってしまう)というのが、意外ですね。知っている人にとってはあたりまえなことなのでしょうが、日頃アプレットを使っていなかったりすると、いざアプレット上で動かそうとして気づく、ということに陥ったりします。 http://www.vc-net.ne.jp/~ytp/bbs/java/thread0230.html#22904 の中の、特に 22953 あたりの記事で知りました。
たしかに sun.misc の中にあるクラスと、外部仕様がまったくコンパチなクラスを、誰か作ってくれれば良いんでしょうけどね。 | ||||||||
|
投稿日時: 2005-09-08 11:35
うろ覚えですから合ってるかどうか分かりませんがw
javax.mail.internet.MimeUtility#encodeText() ってBase64だったような違ったような。 混乱させるだけだったりすいません。 | ||||||||
|
投稿日時: 2005-09-08 12:00
new String(byte[]) をつかえば、文字列に出来ませんか? | ||||||||
|
投稿日時: 2005-09-08 13:02
※ かなり勘違いがあったので削除。 [ メッセージ編集済み 編集者: いっきゅう 編集日時 2005-09-08 13:52 ] | ||||||||
|
投稿日時: 2005-09-09 09:22
確かに、new String(byte[]) を使用すれば、文字列に変換できます。byte配列に戻したい場合は、String#getBytes()で戻せますし。あとは、new String(byte[])もString#getBytes()もプラットフォームの文字コードの影響を受けるため、明に、「UTF-8」あたりを指定すれば良いのでしょうか。 とりあえず、この方針でいってみます。ありがとうございました。 |