将vb.net字节转换为php

将vb.net字节转换为php,php,vb.net,bytearray,rijndaelmanaged,Php,Vb.net,Bytearray,Rijndaelmanaged,我在VB.net中有以下代码 Dim bytIV() As Byte = {121, 241, 10, 1, 132, 74, 11, 39, 255, 91, 45, 78, 14, 211, 22, 62} 我正在尝试将其转换为php $iv = array(121, 241, 10, 1, 132, 74, 11, 39, 255, 91, 45, 78, 14, 211, 22, 62); 那不行 完整的php代码如下: <?php $key = "lvvxmz

我在VB.net中有以下代码

Dim bytIV() As Byte = {121, 241, 10, 1, 132, 74, 11, 39, 255, 91, 45, 78, 14, 211, 22, 62}
我正在尝试将其转换为php

$iv = array(121, 241, 10, 1, 132, 74, 11, 39, 255, 91, 45, 78, 14, 211, 22, 62);
那不行

完整的php代码如下:

    <?php
    $key = "lvvxmzmfrqeephxwmifwvyyllivhzbdi";
    $input = "this is a secret keythis is a secret keythis is a secret keythis is a secret key";

    $td = mcrypt_module_open('rijndael-128', '', 'ofb', '');
    //$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
    $iv = array(121, 241, 10, 1, 132, 74, 11, 39, 255, 91, 45, 78, 14, 211, 22, 62);
    mcrypt_generic_init($td, $key, $iv);
    $encrypted_data = mcrypt_generic($td, $input);
    mcrypt_generic_deinit($td);
    mcrypt_module_close($td);

    echo "IV: $iv <br><br>";

    echo  base64_encode($encrypted_data);
?>

你说的那句不管用的话实际上很管用。我从未使用过PHP第3版之前的版本,但至少从那以后它就开始工作了

问题在于
mcrypt\u generic\u init
的$iv参数应该是字符串,而不是整数数组

这应该适用于转换:

$iv_string = "";
foreach ($iv as $char)
    $iv_string .= chr($char);

对不起,我的PHP已经生锈了:)

PHP希望IV是一个字符串,而不是一个数组-它将被转换为字符串“array”


我猜字符串只是二进制数据,函数可能就是您所需要的。它不接受数组作为参数,但其中一条注释使用数组中的循环来连接每个数组元素的压缩值。

我将vb.net代码更改为:
Dim bytIV()as Byte={100,98,97,101,110,121,100,105,110,116,117,122,119,112,110,110},并将php代码更改为:
$iv=“dbaenydintuzwpn”;<还是不走运。我在vb.net中得到的回报是垃圾,谢谢你指出我的错误。由于我的错误,这个问题不再有效。非常感谢。
$iv_string = "";
foreach ($iv as $char)
    $iv_string .= chr($char);