2011-09-14 66 views
0

我正在將以下Perl腳本轉換爲Java。請解釋它的作用和通過Java的最佳方法。如何在Java中執行以下等效操作

#!/usr/bin/perl -w 

use MIME::Base64; 
use Convert::BinHex; 

print encode_base64(pack "H*", "06d8f33b9c3dd94f8f45a5ef0bd54c63f0cd3113b7b5ebae79807041f7e2f8975352367266a926ea8a2a93ca"); 
+5

如果您不知道該代碼的作用,爲什麼將其轉換爲java? – Falmarri

+0

@Falm - 可能是工作的一部分。 – DVK

回答

6

即使我不知道的Perl我會作出明智的猜測,它需要以十六進制形式(其中每個字節由兩個字符的範圍是[0-9a-代表的二進制數據f])並將其轉換爲base 64字符串。

在Java中,您使用DatatypeConverter::parseHexBinaryDatatypeConverter::printBase64Binary

String hexData = "06d8f33b9c3dd94f8f45a5ef0bd54c63f0cd3113b7b5ebae79807041f7e2f8975352367266a926ea8a2a93ca"; 
String base64data = DatatypeConverter.printBase64Binary(
     DatatypeConverter.parseHexBinary(hexData)); 
System.out.println(base64data); 
+0

正確 - 只是爲了證明你是對的,我從OP運行Perl腳本,並輸出「BtjzO5w92U + PRaXvC9VMY/DNMRO3teuueYBwQffi + JdTUjZyZqkm6ooqk8o =」,這與Java的輸出完全相同。 – Kenny

0
import org.apache.commons.codec.binary.Base64; 

Base64.encodeBase64(string you want to encode.getBytes()); 
相關問題