Encrypt::encode() 

\nn\t3::Encrypt()->encode($data = ''); 

Verschlüsselt einen String oder ein Array.

Im Gegensatz zu \nn\t3::Encrypt()->hash() kann ein verschlüsselter Wert per \nn\t3::Encrypt()->decode() wieder entschlüsselt werden. Diese Methods eignet sich daher nicht, um sensible Daten wie z.B. Passworte in einer Datenbank zu speichern. Dennoch ist der Schutz relativ hoch, da selbst identische Daten, die mit dem gleichen Salting-Key verschlüsselt wurden, unterschiedlich aussehen.

Für die Verschlüsselung wird ein Salting Key generiert und in dem Extension Manager von nnhelpers gespeichert. Dieser Key ist für jede Installation einmalig. Wird er verändert, dann können bereits verschlüsselte Daten nicht wieder entschlüsselt werden.

\nn\t3::Encrypt()->encode( 'mySecretSomething' );
\nn\t3::Encrypt()->encode( ['some'=>'secret'] );
Copied!

Komplettes Beispiel mit Verschlüsselung und Entschlüsselung:

$encryptedResult = \nn\t3::Encrypt()->encode( ['password'=>'mysecretsomething'] );
echo \nn\t3::Encrypt()->decode( $encryptedResult )['password'];

$encryptedResult = \nn\t3::Encrypt()->encode( 'some_secret_phrase' );
echo \nn\t3::Encrypt()->decode( $encryptedResult );
Copied!

| @return string

Source Code 

public function encode( $data = '' ) {
	[$key1, $key2] = json_decode(base64_decode( $this->getSaltingKey() ), true);
	$data = json_encode(['_'=>$data]);
	$method = self::ENCRYPTION_METHOD;
	$iv_length = openssl_cipher_iv_length($method);
	$iv = openssl_random_pseudo_bytes($iv_length);
	$first_encrypted = openssl_encrypt($data, $method, base64_decode($key1), OPENSSL_RAW_DATA, $iv);
	$second_encrypted = hash_hmac(self::ENCRYPTION_HMAC, $first_encrypted, base64_decode($key2), TRUE);
	$output = base64_encode($iv . $second_encrypted . $first_encrypted);
	return $output;
}
Copied!