########################################
# BEGIN PHP CODE
########################################

<?php

ini_set('display_errors', 1);
error_reporting(E_ALL);

$ky = 'lkirwf897+22#bbtrm8814z5qq=498j5'; // 32 * 8 = 256 bit key
$iv = '741952hheeyy66#cs!9hjv887mxx7@8y'; // 32 * 8 = 256 bit iv

$text = "Here is my data to encrypt!!!";

$from_vb = "QBlgcQ2+v3wd8RLjhtu07ZBd8aQWjPMfTc/73TPzlyA=";   // enter value from vb.net app here to test

$etext = encryptRJ256($ky, $iv, $text);
$dtext = decryptRJ256($ky, $iv, $etext);
$vtext = decryptRJ256($ky, $iv, $from_vb);

echo "orignal string: $text";
echo "encrypted in php: $etext";
echo "decrypted in php: $dtext";
echo "encrypted in vb: $from_vb";
echo "from vb decrypted in php: $vtext";
echo "If you like it say thanks! ";

exit;

function decryptRJ256($key,$iv,$string_to_decrypt)
{

$string_to_decrypt = base64_decode($string_to_decrypt);

$rtn = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $string_to_decrypt, MCRYPT_MODE_CBC, $iv);

$rtn = rtrim($rtn, "\4");

return($rtn);

}

function encryptRJ256($key,$iv,$string_to_encrypt)
{

$rtn = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $string_to_encrypt, MCRYPT_MODE_CBC, $iv);

$rtn = base64_encode($rtn);

return($rtn);

}

?>

########################################
# END PHP CODE
########################################
########################################
# BEGIN VB.NET CODE (console app)
########################################

Imports System
Imports System.Text
Imports System.Security.Cryptography
Imports System.IO

Module Module1

Sub Main()

'Shared 256 bit Key and IV here
Dim sKy As String = "lkirwf897+22#bbtrm8814z5qq=498j5"  '32 chr shared ascii string (32 * 8 = 256 bit)
Dim sIV As String = "741952hheeyy66#cs!9hjv887mxx7@8y"  '32 chr shared ascii string (32 * 8 = 256 bit)

Dim sTextVal As String = "Here is my data to encrypt!!!"

Dim eText As String
Dim dText As String

eText = EncryptRJ256(sKy, sIV, sTextVal)
dText = DecryptRJ256(sKy, sIV, eText)

Console.WriteLine("key: " &amp; sKy)
Console.WriteLine()
Console.WriteLine(" iv: " &amp; sIV)
Console.WriteLine("txt: " &amp; sTextVal)
Console.WriteLine("encrypted: " &amp; eText)
Console.WriteLine("decrypted: " &amp; dText)
Console.WriteLine("If you like it say thanks! ")
Console.WriteLine("press any key to exit")
Console.ReadKey(True)

End Sub

Public Function DecryptRJ256(ByVal prm_key As String, ByVal prm_iv As String, ByVal prm_text_to_decrypt As String)

Dim sEncryptedString As String = prm_text_to_decrypt

Dim myRijndael As New RijndaelManaged
myRijndael.Padding = PaddingMode.Zeros
myRijndael.Mode = CipherMode.CBC
myRijndael.KeySize = 256
myRijndael.BlockSize = 256

Dim key() As Byte
Dim IV() As Byte

key = System.Text.Encoding.ASCII.GetBytes(prm_key)
IV = System.Text.Encoding.ASCII.GetBytes(prm_iv)

Dim decryptor As ICryptoTransform = myRijndael.CreateDecryptor(key, IV)

Dim sEncrypted As Byte() = Convert.FromBase64String(sEncryptedString)

Dim fromEncrypt() As Byte = New Byte(sEncrypted.Length) {}

Dim msDecrypt As New MemoryStream(sEncrypted)
Dim csDecrypt As New CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read)

csDecrypt.Read(fromEncrypt, 0, fromEncrypt.Length)

Return (System.Text.Encoding.ASCII.GetString(fromEncrypt))

End Function

Public Function EncryptRJ256(ByVal prm_key As String, ByVal prm_iv As String, ByVal prm_text_to_encrypt As String)

Dim sToEncrypt As String = prm_text_to_encrypt

Dim myRijndael As New RijndaelManaged
myRijndael.Padding = PaddingMode.Zeros
myRijndael.Mode = CipherMode.CBC
myRijndael.KeySize = 256
myRijndael.BlockSize = 256

Dim encrypted() As Byte
Dim toEncrypt() As Byte
Dim key() As Byte
Dim IV() As Byte

key = System.Text.Encoding.ASCII.GetBytes(prm_key)
IV = System.Text.Encoding.ASCII.GetBytes(prm_iv)

Dim encryptor As ICryptoTransform = myRijndael.CreateEncryptor(key, IV)

Dim msEncrypt As New MemoryStream()
Dim csEncrypt As New CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write)

toEncrypt = System.Text.Encoding.ASCII.GetBytes(sToEncrypt)

csEncrypt.Write(toEncrypt, 0, toEncrypt.Length)
csEncrypt.FlushFinalBlock()

encrypted = msEncrypt.ToArray()

Return (Convert.ToBase64String(encrypted))

End Function

End Module

########################################
# END VB.NET CODE
########################################