Как мне преобразовать mcrypt_encrypt из PHP в код .NET?

Я ищу, чтобы преобразовать эту функцию из PHP в VB. Может ли кто-нибудь помочь мне понять, почему вывод не является правильным?

//get img
$img = file_get_contents('https://www.random.org/analysis/randbitmap-rdo-section.png');

//pad
$blocksize = 16;
$pad = $blocksize - (strlen($img) % $blocksize);
$paddedimg = $img . str_repeat(chr($pad), $pad);

//encrypt
$data = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, 'abcdefghijklmnop', $paddedimg, MCRYPT_MODE_ECB);

//output
echo base64_encode($data);

Вышеуказанные выводы;
wYkugZmmsCHNwFOr7sAgk6yUU2I+2rOtBmXAIcPleue+dT4zIvkSA6UYmW6tickeoIbyCylxrb5n
[остальное урезано, но продолжается, и всего 29484 символа]

Вот что я имею в VB;

  Public Sub GetBase64EncryptedImg()
Dim Img As Byte() = Nothing
Using wc As New WebClient
Img = wc.DownloadData("https://www.random.org/analysis/randbitmap-rdo-section.png")
End Using
MsgBox(EncryptECB(Img))
End Sub

Public Function EncryptECB(Data As Byte()) As String

Dim Key As Byte() = Encoding.UTF8.GetBytes("abcdefghijklmnop")
Dim Encrypted As Byte() = Nothing

Using rj As New RijndaelManaged()
Try
rj.Padding = PaddingMode.PKCS7
rj.Mode = CipherMode.ECB
rj.KeySize = 128
rj.BlockSize = 128
rj.Key = Key

Dim ms As New MemoryStream()

Using cs As New CryptoStream(ms, rj.CreateEncryptor(rj.Key, rj.IV), CryptoStreamMode.Write)

Using sr As New StreamWriter(cs)
sr.Write(Data)
End Using
Encrypted = ms.ToArray()
End Using
Finally
rj.Clear()
End Try

End Using

Return Convert.ToBase64String(Encrypted)
End Function

Выходы VB;
pVngUaXYYv1tJSPzjDuwKw==

Вот и все, нигде не близко к нужному количеству символов. Куда я здесь не так?

РЕДАКТИРОВАТЬ: Если пометить как дубликат, этот вопрос / ответ возвращает строку в кодировке base64. mcrypt_encrypt нет, поэтому я не уверен, как применить код в этом ответе.

EDIT2: этот дубликат дает значение IV, а код выше — нет. Разве это не дифференцирует два, чтобы заслужить уникальный ответ? Или это так же просто, как удаление строки, устанавливающей свойство IV RijndaelManaged объект?

EDIT3: полностью переработан вопрос

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]