Verschlüsselung

riddler2kone

Erfahrenes Mitglied
Hallo, ich muss einen String an eine Dateiübergeben, so dass man diesen nicht verändern kann. Mit sessions kann cih ned arbeiten (micht das ich es ned könnte, aber in diesem fall geht es einfach) und deswegen will ich den wert verschlüsseln und wieder entschlüsseln.

kann mit jemand schnell ne funktion schreiben wo z.B. von dem string "test" jedes zeichen in ASCII code gewandelt wird, mit einem wert malgenommen wird und dann das agnze zur entschlüssellung wieder zurück? thx (PS: wenns noch andere wege gibt ist mir das auch recht ;))

cya, daniel
 
und was bringt das wenn du es verschlüsselst? so wie ich das jetzt verstanden habe willst du einen string in einer anderen datei einlesen oder?
 
hi,


alsoooooooooooo.

Test1.php und Test2.php

Test1.php verschlüsselt einen wert und Test2.php entschlüsselt ihn wieder. mehr nicht! wie lautet der code dafür?
 
Ähm warum willste einen wert wieder entschlüsseln ? bzw warum verschlüsselste den - übergeb ihn doch unverschlüsselt per hidden field, ist denke ich mal einfacher, als da jetz so nen aufwand drum zu machen.

Grüße, Morph
 
so schön eure vorschläge sind: ich ahbe meine gründe das so zu machen!

macht jetzt eben jemand so eine funktion oder nicht?

PS: ich mach das für ne firma also: datengeheimniss. ich hoffe ihr habt verständniss.

cya, daniel
 
PHP.net says:
Der veschlüsselte String kann nicht entschlüsselt werden, da crypt() eine Einweg-Verschlüsselung ist.
Das gleiche gilt für md5 - kannste, meines wissens, auch nicht umkehren.

Hab aber was für dich (Chiffrier-Block-Verkettung):
PHP:
$message = "Irgend nen Text, der Verschlüsselt werden soll.";
$key = "top-secret";

// Verschlüsseln
$code = mcrypt_cbc (MCRYPT_BLOWFISH_128, $key, $message, MCRYPT_ENCRYPT);

// Entschlüsseln
$code_2 = mcrypt_cbc (MCRYPT_BLOWFISH_128, $key, $code, MCRYPT_DECRYPT);

Grüße, Morph
 
hmmm....

PHP:
<?

$message = "Irgend nen Text, der Verschlüsselt werden soll.";
$key = "top-secret";

// Verschlüsseln
$code = mcrypt_cbc (MCRYPT_BLOWFISH_128, $key, $message, MCRYPT_ENCRYPT);

// Entschlüsseln
$code_2 = mcrypt_cbc (MCRYPT_BLOWFISH_128, $key, $code, MCRYPT_DECRYPT);

echo $code;

?>

Das kommt dabei raus:

[zitat]
Fatal error: Call to undefined function: mcrypt_cbc() in C:\apache\htdocs\oracleprojekt\test2.php on line 7
[/zitat]

was nun?
 
Öhm ... ja - ka ? Ich schau mal, wo der Fehler liegt ... meld' mich dann gleich wieder hier.

Edit: Is mir grad eingefallen, ECB sollte eigentlich gehen:
PHP:
<?

$message = "Irgend nen Text, der Verschlüsselt werden soll.";
$key = "top-secret";

// Verschlüsseln
$code = mcrypt_ecb (MCRYPT_BLOWFISH_128, $key, $message, MCRYPT_ENCRYPT);

// Entschlüsseln
$code_2 = mcrypt_ecb (MCRYPT_BLOWFISH_128, $key, $code, MCRYPT_DECRYPT);

echo $code;

?>

Grüße, Morph
 
Zuletzt bearbeitet:
@Morph: Man muss erst die mcrypt-Library installieren, damit man mit diesen Funktionen arbeiten kann...

@riddler2kone: Hab da mal schnell einen eigenen, simplen Algorithmus programmiert... ich weiß nicht, wie sicher der ist, aber für's erste sollte es reichen.
PHP:
<?
function _crypt($message, $key)
{
	$key = md5($key);
	$j = 0;
	for ($i=0;$i<strlen($message);$i++)
	{
		$char = ord(substr($message, $i, 1));
		$char += base_convert(substr($key, $j, 2), 16, 10);
		if ($char>255) $char -= 255;
		$crypt .= chr($char);
		$j += 2;
		if ($j=32) $j=0;
	}
	return $crypt;
}

function _decrypt($message, $key)
{
	$key = md5($key);
	$j = 0;
	for ($i=0;$i<strlen($message);$i++)
	{
		$char = ord(substr($message, $i, 1));
		$char -= base_convert(substr($key, $j, 2), 16, 10);
		if ($char<0) $char += 255;
		$decrypt .= chr($char);
		$j += 2;
		if ($j=32) $j=0;
	}
	return $decrypt;
}
?>


reima
 
Zurück