Suhail Kaleem » PHP

PHP

Encrypt in VB.NET and Decrypt in PHP and Vice Versa

22
########################################
# 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
########################################

MSSQL DATENAME() ALTERNATIVE FOR MYSQL

0

The mysql equilevent of

DATENAME(WEEKDAY,GETDATE())

is

DATE_FORMAT(NOW(),’%W’)

DATE_FORMAT(NOW(),'%W, %M %e, %Y @ %h:%i %p')
#yields 'Sunday, September 20, 2008 @ 12:45 PM'

MySQL DATE_FORMAT() Letter Representations

Specifier Description
%a Abbreviated weekday name (Sun..Sat)
%b Abbreviated month name (Jan..Dec)
%c Month, numeric (0..12)
%D Day of the month with English suffix (0th, 1st, 2nd, 3rd, …)
%d Day of the month, numeric (00..31)
%e Day of the month, numeric (0..31)
%f Microseconds (000000..999999)
%H Hour (00..23)
%h Hour (01..12)
%I Hour (01..12)
%i Minutes, numeric (00..59)
%j Day of year (001..366)
%k Hour (0..23)
%l Hour (1..12)
%M Month name (January..December)
%m Month, numeric (00..12)
%p AM or PM
%r Time, 12-hour (hh:mm:ss followed by AM or PM)
%S Seconds (00..59)
%s Seconds (00..59)
%T Time, 24-hour (hh:mm:ss)
%U Week (00..53), where Sunday is the first day of the week
%u Week (00..53), where Monday is the first day of the week
%V Week (01..53), where Sunday is the first day of the week; used with %X
%v Week (01..53), where Monday is the first day of the week; used with %x
%W Weekday name (Sunday..Saturday)
%w Day of the week (0=Sunday..6=Saturday)
%X Year for the week where Sunday is the first day of the week, numeric, four digits; used with %V
%x Year for the week, where Monday is the first day of the week, numeric, four digits; used with %v
%Y Year, numeric, four digits
%y Year, numeric (two digits)
%% A literal “%” character
%x x, for any “x” not listed above
Go to Top