Seite 1 von 1

PN encryption - unvollständiges entschlüsseln?

Verfasst: 29.09.2008 13:09
von Dungeonwatcher
Moin! 8)

Wie in einem anderen Thema bereits geschrieben steht, habe ich den Private Message Encryption and Decryption in Benutzung. Bei diesem ansonst genialen Mod habe ich jedoch noch einen nervigen Schönheitsfehler. Dieser besteht darin, das verschlüsselte PNs nur unvollständig entschlüsselt werden. :-?

Zum verschlüsseln dient dieser Codeblock:

Code: Alles auswählen

			if ( $encrypt )
			{
				srand((double) microtime() * 1000000);
				$cipher_alg = MCRYPT_RIJNDAEL_256;
				$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
				$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
				$key = "This is a very secret key";
				$encrypted_message = str_replace("\\\"", "\"", $privmsg_message);
				$encrypted_message = str_replace("\\'", "'", $encrypted_message);
				$encrypted_message = str_replace("\\\\", "\\", $encrypted_message);
				$encrypted_message = bin2hex(mcrypt_encrypt($cipher_alg, $encryption_key, $encrypted_message, MCRYPT_MODE_CFB, "$iv"));
				$encrypted_message = wordwrap($encrypted_message, 80, "<br />", 1);
				$encrypted_message = "<b>Um diese verschl&uuml;sselte Nachricht zu lesen, gebe das Passwort unten rechts ein und klicke dann auf den Button \"Nachricht entschl&uuml;sseln\":</b>\n\n" . $encrypted_message;
				$sql = "INSERT INTO " . PRIVMSGS_TEXT_TABLE . " (privmsgs_text_id, privmsgs_bbcode_uid, privmsgs_text)
					VALUES ($privmsg_sent_id, '" . $bbcode_uid . "', '" . $encrypted_message . "')";
			}
und zum entschlüsseln dieser:

Code: Alles auswählen

	if ( $decrypt )
	{
		if ( ! empty($encryption_key) )
		{
			srand((double) microtime() * 1000000);
			$cipher_alg = MCRYPT_RIJNDAEL_256;
			$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
			$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
			$key = "This is a very secret key";
			$decrypted_message = str_replace("<b>Um diese verschl&uuml;sselte Nachricht zu lesen, gebe das Passwort unten rechts ein und klicke dann auf den Button \"Nachricht entschl&uuml;sseln\":</b>\n\n", "", $private_message);
			$decrypted_message = str_replace("<br />", "", $decrypted_message);
			$decrypted_message = trim(mcrypt_decrypt($cipher_alg, $encryption_key, pack("H*", $decrypted_message), MCRYPT_MODE_CFB, "$iv"));
			$decrypted_message = stripslashes($decrypted_message);
			$private_message = str_replace("\r\n", "<br />", $decrypted_message);
			$decrypted_message = str_replace("\"", """, $decrypted_message);
			$decrypted_message = stripslashes($decrypted_message);
		}
		else if ( empty($encryption_key) )
		{
			$error = TRUE;
			$error_msg .= ( ( !empty($error_msg) ) ? '<br />' : '' ) . $lang['Empty_decryption_key'];

			$template->set_filenames(array(
				'reg_header' => 'error_body.tpl')
			);
			$template->assign_vars(array(
				'ERROR_MESSAGE' => $error_msg)
			);
			$template->assign_var_from_handle('ERROR_BOX', 'reg_header');
		}
	}
Seit Monaten suche ich schon die Ursache für dieses Verhalten, habe aber nicht die geringste Idee woran es liegen könnte. :-?

Es wäre super nett wenn sich mal einer der hiesigen PHP Profis dies anschauen würde. THNX

Bye