Page 1 of 1
MCrypt Encypt/Decrypt
Posted: Sat Jun 03, 2006 7:34 pm
by tecktalkcm0391
Can anyone tell me how to do the unencrypt part to this:
Code: Select all
<?php
$code='5g7h';
$key = "1234567890";
$input = $code;
$td = mcrypt_module_open('tripledes', '', 'ecb', '');
$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
mcrypt_generic_init($td, $key, $iv);
$new_code = mcrypt_generic($td, $input);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
?>
I know to use mcrypt_decrypt, but I just can't figure it out!
Posted: Sat Jun 03, 2006 9:26 pm
by sweatje
Here is an example, using a
SimpleTest test case to show it in action:
Code: Select all
function testMcryptFunctions() {
$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_TRIPLEDES, MCRYPT_MODE_ECB), MCRYPT_RAND);
$key = "1234567890";
$code='5g7h';
$new_code = mcrypt_encrypt(MCRYPT_TRIPLEDES, $key, $code, MCRYPT_MODE_ECB, $iv);
$this->assertNotEqual($new_code, $code);
$this->assertEqual($code, trim(mcrypt_decrypt (MCRYPT_TRIPLEDES, $key, $new_code, MCRYPT_MODE_ECB, $iv)));
}
Posted: Sat Jun 03, 2006 10:14 pm
by AKA Panama Jack
Here are two functions to encode and decode using mcrypt.
Code: Select all
DEFINE ("Keysize","f23r09aj09f3wqj90");
function encode($data)
{
$td = mcrypt_module_open (MCRYPT_TripleDES, "", MCRYPT_MODE_ECB, "");
$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size ($td), MCRYPT_RAND);
$encdata = mcrypt_ecb (MCRYPT_TripleDES,(Keysize), $data, MCRYPT_ENCRYPT, $iv);
$hextext=bin2hex($encdata);
return $hextext;
}
function decode($data)
{
$td = mcrypt_module_open (MCRYPT_TripleDES, "", MCRYPT_MODE_ECB, "");
$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size ($td), MCRYPT_RAND);
$dectext = rtrim(mcrypt_ecb (MCRYPT_TripleDES,(Keysize), pack("H" . strlen($data), $data), MCRYPT_DECRYPT,$iv), "\0");
return $dectext;
}
$test_string = "My Test";
echo "String to encode: " . $test_string . "<br>";
$encoded_data = encode($test_string);
echo "Encoded data: " . $encoded_data . "<br>";
$decoded_data = decode($encoded_data);
echo "Decoded data: " . $decoded_data . "<br>";
Change the Keysize define to any string of letters and numbers for your own private key. The $test_string and $decoded_data should match. The $encoded_data is the mcrypt encoded string.