Lieber M., lieber Jörg,
Habs getestet und klappt.
hab's mit einer HTML-Datei getestet, welche korrekt wieder entschlüsselt werden konnte. Offensichtlich ist das die von mir gesuchte Lösung.
Ich habs mit deinem Beispiel verschlüsselt und mit der geposteten Klasse entschlüsselt, als klappt es.
Auch ich habe mit Jörgs Code erfolgreich testen können (unter Verwendung der "sqAES"-Klasse).
Ob es mit komplexen Texten und Passwörtern klappt, hab ich nicht getestet, aber mit dem Text "das ist ein test" und dem PW "xxx" hats einwandfrei funktioniert.
Hier mein Testaufbau (Datei "endecrypt.php"):
<?php
$key = '1337 "$%&/ üöäß';
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>En-/DeCrypt</title>
<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/aes.js"></script>
<script type="text/javascript">
function myCrypt() {
pass = '<?php echo $key ?>';
encrypted = CryptoJS.AES.encrypt(
document.getElementById('data').value,
pass
);
document.getElementById('data').value = encrypted;
document.forms[0].submit();
}
</script>
</head>
<body>
<?php
function decrypt($password, $edata) {
$data = base64_decode($edata);
$salt = substr($data, 8, 8);
$ct = substr($data, 16);
$rounds = 3;
$data00 = $password.$salt;
$md5_hash = array();
$md5_hash[0] = md5($data00, true);
$result = $md5_hash[0];
for ($i = 1; $i < $rounds; $i++) {
$md5_hash[$i] = md5($md5_hash[$i - 1].$data00, true);
$result .= $md5_hash[$i];
}
$key = substr($result, 0, 32);
$iv = substr($result, 32,16);
return openssl_decrypt($ct, 'aes-256-cbc', $key, true, $iv);
}
if (array_key_exists('data', $_POST)) {
printf (
"<pre>decrypting...\r\n%s</pre>\r\n",
htmlspecialchars(
decrypt($key, $_POST['data'])
)
);
}
?>
<form action="" method="post">
<textarea name="data" id="data" style="display:block;height:450px;width:800px;">
<?php
echo htmlspecialchars(
file_get_contents('./index.html')
);
?>
</textarea>
<input type="button" value="verschluesseln und senden" onclick="myCrypt()" />
</form>
</body>
</html>
HERZLICHSTEN DANK!!!
Liebe Grüße,
Felix Riesterer.
--
ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)