我正在將以下Perl腳本轉換爲Java。請解釋它的作用和通過Java的最佳方法。如何在Java中執行以下等效操作
#!/usr/bin/perl -w
use MIME::Base64;
use Convert::BinHex;
print encode_base64(pack "H*", "06d8f33b9c3dd94f8f45a5ef0bd54c63f0cd3113b7b5ebae79807041f7e2f8975352367266a926ea8a2a93ca");
我正在將以下Perl腳本轉換爲Java。請解釋它的作用和通過Java的最佳方法。如何在Java中執行以下等效操作
#!/usr/bin/perl -w
use MIME::Base64;
use Convert::BinHex;
print encode_base64(pack "H*", "06d8f33b9c3dd94f8f45a5ef0bd54c63f0cd3113b7b5ebae79807041f7e2f8975352367266a926ea8a2a93ca");
即使我不知道的Perl我會作出明智的猜測,它需要以十六進制形式(其中每個字節由兩個字符的範圍是[0-9a-代表的二進制數據f])並將其轉換爲base 64字符串。
在Java中,您使用DatatypeConverter::parseHexBinary
和DatatypeConverter::printBase64Binary
。
String hexData = "06d8f33b9c3dd94f8f45a5ef0bd54c63f0cd3113b7b5ebae79807041f7e2f8975352367266a926ea8a2a93ca";
String base64data = DatatypeConverter.printBase64Binary(
DatatypeConverter.parseHexBinary(hexData));
System.out.println(base64data);
正確 - 只是爲了證明你是對的,我從OP運行Perl腳本,並輸出「BtjzO5w92U + PRaXvC9VMY/DNMRO3teuueYBwQffi + JdTUjZyZqkm6ooqk8o =」,這與Java的輸出完全相同。 – Kenny
import org.apache.commons.codec.binary.Base64;
Base64.encodeBase64(string you want to encode.getBytes());
如果您不知道該代碼的作用,爲什麼將其轉換爲java? – Falmarri
@Falm - 可能是工作的一部分。 – DVK