Class mcrypt

Contenu du snippet

gestion de la class mcrypt, c'est la version préalphabêta si vous voyez :)
je la poste pour voir les améliorations que d'autres pourront apporter.

Source / Exemple :


<?php

class mcrypt {
var $algorithm = MCRYPT_TRIPLEDES;
var $mode = MCRYPT_MODE_CFB;
var $defKey ='54087c0be6244cb2755efa439469302d';
var $key;

	function mcrypt($arg = NULL)
	{
	
		if($arg == NULL)
		{
		
			$this->key = $this -> defKey;
		
		}	else {
			
			$this->key = $arg;
		}

		$this->openModule();
	
	}
	
	function openModule()
	{

		if($this->td = @mcrypt_module_open($this ->algorithm,'',$this ->mode,''))
		{
		
			$this -> createIv();
		
		}	else {
		
			trigger_error('Open module failt',E_USER_ERROR);
			
		}//end if
	
	}
	
	
	function createIv()
	{
	
		if($this -> size = @mcrypt_get_iv_size ($this ->algorithm, $this->mode))
		{
			
			if($this -> iv = @mcrypt_create_iv($this->size,MCRYPT_RAND))
			{
			
					mcrypt_generic_init ($this -> td, substr($this->key,0,mcrypt_enc_get_key_size($this -> td)), $this -> iv);

				
			} else {

				trigger_error('mcrypt_create_iv failt',E_USER_ERROR);
				
			}//end if
		
		} else {
		
			trigger_error('mcrypt_get_iv_size failt',E_USER_ERROR);
		
		}//end if
	
	}//end function
	
	function encrypt($string)
	{
	
		return mcrypt_generic ($this -> td, $string);
		
	}
	
	function decrypt($string)
	{
	
		return mdecrypt_generic($this -> td,$string);
	
	}
	
	function closeMcrypt()
	{
	
	    mcrypt_generic_deinit ($this->td);
		mcrypt_module_close ($this->td);

	
	}

}
?>

Conclusion :


alors, pour l'utiliser:

<?
require_once('crypt.php') //dépendra du nom de votre fichier

$mcryp = new mcrypt(); //vous pouvez définir votre prore password new mcrypt('VotrePass');

$mcrypt->encrypt('Votre texte secret');

$mcrypt->decrypt('Votre texte crypter');//doit être décrypter avec le pass d'encryption :)

$mcrypt->closeMcrypt(); //ferme le module;

//----------- divers ------------------

$mcrypt->listAlgo(); //voir les algorithm installés chez votre provider;
$mcrypt->listMode();//idem mais pour les différents mode

?>

voilà, reste plus qu'a l'améliorer et le redistribuer

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.