PDA

Bekijk Volledige Versie : PHP, ASP mcrypt_encrypt, mcrypt_decrypt



johan.smits
06/10/08, 18:56
Ik gebruik de volgende code op een Linux PHP machine.
Dit werkt prima.
Echter moet ik de decrypt functie ook op een ASP server kunnen draaien.
Nu heb ik totaal geen ervaring ermee



function RIJNDAEL_encrypt($text){

$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$key = "This is a very secret key";
return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv));

}

function RIJNDAEL_decrypt($text){

$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$key = "This is a very secret key";
//I used trim to remove trailing spaces
return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, base64_decode($text), MCRYPT_MODE_ECB, $iv));

}

//example
echo RIJNDAEL_encrypt('test');
echo RIJNDAEL_decrypt(RIJNDAEL_encrypt('test'));
Uitkomst encrypt:
ZTcNJy5Q+83Mqd2RfMmTek6OjGtoSp87n2IDohpVLOo=Iemand die mij op weg kan helpen om bovenstaande string binnen ASP weer als test om te zetten?

Enieuw
06/10/08, 19:15
Ik heb deze link voor je gevonden op google, denk dat het hier wel mee moet lukken :)
http://forums.asp.net/p/884782/923378.aspx

johan.smits
06/10/08, 19:40
Is inderdaad al in de goede richting.
Iemand die het in een asp documentje kan gieten voor mij?
Snap van ASP totaal niets.

gjtje
06/10/08, 20:20
Da's asp.net, geen asp.

http://p2p.wrox.com/topic.asp?TOPIC_ID=3353

johan.smits
06/10/08, 22:03
gjtje had gelijk. Maar het mag van mij ook asp.net zijn.
Is mij om het even wat het makkelijkste is.

Dit is de code in PHP:

<?php
// Login Check
// Code 00 = Login OK
// Code 01 = No Username of Password
// Code 02 = Wrong Usernme off password
function RIJNDAEL_decrypt($text,$keyParse)
{
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
//I used trim to remove trailing spaces
return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $keyParse, base64_decode($text), MCRYPT_MODE_ECB, $iv));
}

// Customer Login
if(empty($_POST['UserName']) && empty($_POST['PassWord']))
{
echo "Code:0";
}
elseif(!empty($_POST['UserName']) && !empty($_POST['PassWord']))
{
$keyParse = 'Hele Moeilijke Key';
$UserName = RIJNDAEL_decrypt($_POST['UserName'],$keyParse);
$PassWord = RIJNDAEL_decrypt($_POST['PassWord'],$keyParse);
if($UserName == 'user' && $PassWord == '123')
{
echo 'Code:00';
}
else
echo "Code:02";
}
?>

En deze zou ik graag omgetoverd hebben naar asp of asp.net

Echter geen idee hoe.
Heb een aantal tests gedaan echter zonder succes. iemand tijd en zin om mij hierbij te helpen??

johan.smits
07/10/08, 07:04
Niemand?
Ook niet tegen betaling?

bramveen
09/10/08, 10:49
Hi

Zoiets:

http://www.overset.com/2008/04/17/simple-aes-rijndael-c-encrypt-decrypt-functions/

public static string Decrypt(string toDecrypt) {
byte[] keyArray = UTF8Encoding.UTF8.GetBytes("12345678901234567890123456789012");
byte[] toEncryptArray = Convert.FromBase64String(toDecrypt);

RijndaelManaged rDel = new RijndaelManaged();
rDel.Key = keyArray;
rDel.Mode = CipherMode.ECB;
rDel.Padding = PaddingMode.PKCS7;

ICryptoTransform cTransform = rDel.CreateDecryptor();
byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);

return UTF8Encoding.UTF8.GetString(resultArray);
}

Thanks

Bram

MediaServe
11/10/08, 17:36
Niemand?
Ook niet tegen betaling?

PHP draait ook op IIS, misschien moet je de oplossing van jouw probleem in een andere hoek zoeken? En als je per se ASP nodig hebt, kijk dan hier eens naar:
http://www.example-code.com/vbscript/crypt2_aes_matchPhp.asp