将Java字节转换为Perl

将Java字节转换为Perl,java,perl,encryption,Java,Perl,Encryption,有一个用Java编写的压缩程序,然后使用密码openssl aes进行加密 我正在用Perl编写一个程序,它将解密然后解压 我在解密部分时遇到了问题,我相信这与IV的Java字节转换有关 注意:我对Java语言一无所知 爪哇: Perl: 我试过上面的和其他一些组合,但似乎不正确 请告诉我如何正确进行转换。您可以在 b对应于pack上下文中的位字符串,这可能不是您想要的。其中有一个例子如下所示: $byte = pack( 'B8', '10001100' ); # start with MSB

有一个用Java编写的压缩程序,然后使用密码openssl aes进行加密

我正在用Perl编写一个程序,它将解密然后解压

我在解密部分时遇到了问题,我相信这与IV的Java字节转换有关

注意:我对Java语言一无所知

爪哇:

Perl:

我试过上面的和其他一些组合,但似乎不正确


请告诉我如何正确进行转换。

您可以在

b
对应于
pack
上下文中的位字符串,这可能不是您想要的。其中有一个例子如下所示:

$byte = pack( 'B8', '10001100' ); # start with MSB
$byte = pack( 'b8', '00110001' ); # start with LSB
您可能可以使用与有符号字符(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));
     }
}

注意,这对于测试来说是很好的,但是在现场,静态IV没有什么意义。
my $iv = pack('c16', 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
print unpack 'c16', $iv;
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));
     }
}