• NL
  • ES
  • DE
  • EN
Google+twitterfacebook

Encryptie

Versleutel een tekst of ontcijfer een versleutelde tekst
Versleutelen Ontsleutelen
Details van deze implementatie

De AES-256 (CBC) versleuteling die we hier toepassen werkt als volgt:

  • bereken de MD5 hashes van de sleutel en de Intialisatie-Vector
  • bepaal de daadwerkelijke sleutel en Initialisatie-Vector op basis van deze hashes
  • versleutel de gegeven tekst met deze sleutel en Initialisatie-Vector met 256 bits AES in CBC (Cipher Block Chaining) mode, waarna het resultaat gecodeerd wordt met Base64 codering
  • voor ontcijferen wordt de gegeven tekst gedecodeerd van Base64 codering en ontcijfert met eerdergenoemde sleutel en Initialisatie-Vector met 256 bits AES in CBC (Cipher Block Chaining) mode


In geval van versleuteling wordt de Initialisatie-Vector vooraan de gegeven tekst geplakt alvorens deze te versleutelen. Bij ontcijferen wordt de Initialisatie-Vector van het begin van de ontcijferde tekst verwijderd.

NB: spaties en dergelijke aan begin en einde van de invoer worden niet verwijderd en zijn dus van belang voor succesvolle ontcijfering!

Wat is AES?

In de cryptografie is Advanced Encryption Standard (AES) een computerversleutelingstechniek (encryptie). Het is de opvolger van de "Data Encryption Standard" (DES). AES is een subset van het Rijndael-algoritme waarbij de blokgrootte 128-bits is, en de sleutel 128, 192 of 256 bits. Rijndael zelf kan alle blokgrootten en sleutels aan die een veelvoud zijn van 32-bit met een minimum van 128-bit en een maximum van 256-bit.

Bron: Wikipedia

Hoe te programmeren in PHP?
<?php

	define('CRYPT_CIPHER',  MCRYPT_RIJNDAEL_256);				// encryption algorithm
	define('CRYPT_MODE',    MCRYPT_MODE_CBC);					// encryption algorithm mode
 
	define('CRYPT_KEY', 'f6631c0e3de8bff772c9dcfed7353baa');	// encryption key
	define('CRYPT_IV',  'cbb63ead0473bb60e611841fb46b945c');	// initialisation vector

	$text = 'This is a text';									// plain text to encrypt
 
	// determine initialisation vector size and initialisation vector
    $ivSize  = mcrypt_get_iv_size(CRYPT_CIPHER, CRYPT_MODE);
    $iv      = substr(CRYPT_IV, 0, $ivSize);
 
	// determine key size and key
    $keySize = mcrypt_get_key_size(CRYPT_CIPHER, CRYPT_MODE);
    $key     = substr(CRYPT_KEY, 0, $keySize);
 
	// encrypt text
    $result = mcrypt_encrypt(CRYPT_CIPHER, $key, $text, CRYPT_MODE, $iv);

	// result contains binary string, to store it anywhere convert
	// it to optimized ascii using base64 encoding
    $result = base64_encode($result);
 
	// $result now contains string:
	// 'BggvzMUWJ5Hp4g3KiGVnWjsjiJ+r97MXqE8ujbchHqI='

Bel nu  020-7775488 , als je een andere tool nodig hebt!