質問: 掲示板利用させていただきます。 phpのpack関数と同じ処理をjavaで行うにはどうしたら よいでしょうか?? packの挙動は「データをバイナリ文字列にパックする」 ということだと思うのですが、 javaでバイナリ文字列といえば、単純にString型に格納 された文字列だと思っていたのですが・・。 phpのpack関数は第一引数としてフォーマット文字列を受け取れるので、たとえば'H*'を第一引数で渡した場合、 Stringの文字列を16進数変換するだけでよいのでしょうか?? ご存知の方ご教示ください;;
回答: 補足です。 phpで以下のソースで行える処理を、JAVAで行いたいのです。 --php-- $source='1'; $result = base64_encode(pack('H*', sha1($source)); --java-- import com.sun.org.apache.xerces.internal.impl.dv.util.Base64; String source="1"; MessageDigest mes = MessageDigest.getInstance("SHA-1"); byte[] digest = mes.digest(source.getBytes()); String reuslt = Base64.encode(str.getBytes()); 上記コードで実行すると、1バイト文字だと同じ結果になるのですが、2バイト文字だと別の結果になります・・。 何か考慮できていない点があるのでしょうか??