簡體   English   中英

將Java字節轉換為Perl

[英]Converting Java byte to Perl

有一個用Java編寫的程序壓縮然后使用密碼openssl aes進行加密。

我在Perl中編寫一個程序,它將解密然后解壓縮。

我在解密部分時遇到問題,並且認為它與IV的Java字節轉換有關。

注意:我對Java語言一無所知。

Java的:

static byte[] IV = new byte[] {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};

Perl的:

my $iv = pack('b128', 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);

我已嘗試過上面和其他一些組合,但似乎沒有正確的IV。

請告訴我如何正確進行轉換。

您可以在文檔中閱讀有關pack的內容。

b對應於pack上下文中的位字符串 ,這可能不是您想要的。 perlpacktut中有一個示例如下所示:

$byte = pack( 'B8', '10001100' ); # start with MSB
$byte = pack( 'b8', '00110001' ); # start with LSB

您可能能夠使用對應於signed char(8位)值的 c

my $iv = pack('c16', 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
print unpack 'c16', $iv;

我認為這與此Java代碼類似:

import java.lang.Byte;
import java.util.Arrays;
public class ByteStuff{

     public static void main(String []args){

        byte[] IV = new byte[] {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
         System.out.println(Arrays.toString(IV));
     }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM