Я хочу зашифровать сообщение с помощью php, но на стороне клиента я хочу, чтобы javascript расшифровал его.Я пробовал Blowfish (используя mcrypt), но обнаружил, что php отображает не буквенно-цифровой символ, а Javascript отображает буквенно-цифровой символ.Я использую ajax, чтобы страница не перезагружалась.
Я тестировал коды из http://aam.ugpl.de/?q=node/1060 и http://www.php -einfach.de / blowfish_en.php # ausgabe .
Любая помощь приветствуется.
Редактировать: Я использую Диффи-Хеллмана для вычисления секретного ключа со случайным генерируемым числом a и b.Ниже приведен PHP-код
class Encryption
{
const CYPHER = 'blowfish';
const MODE = 'cbc';
const KEY = '26854571066639171754759502724211797107457520821';
public function encrypt($plaintext)
{
$td = mcrypt_module_open(self::CYPHER, '', self::MODE, '');
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
mcrypt_generic_init($td, self::KEY, $iv);
$crypttext = mcrypt_generic($td, $plaintext);
mcrypt_generic_deinit($td);
return $iv.$crypttext;
}
public function decrypt($crypttext)
{
$plaintext = '';
$td = mcrypt_module_open(self::CYPHER, '', self::MODE, '');
$ivsize = mcrypt_enc_get_iv_size($td);
$iv = substr($crypttext, 0, $ivsize);
$crypttext = substr($crypttext, $ivsize);
if ($iv)
{
mcrypt_generic_init($td, self::KEY, $iv);
$plaintext = mdecrypt_generic($td, $crypttext);
}
return $plaintext;
}
}
$encrypted_string = Encryption::encrypt('this is a test');
$decrypted_string = Encryption::decrypt($encrypted_string);
echo "encrypted: $encrypted_string<br>";
echo "decrypted: $decrypted_string<br>";
encrypted: µ˜?r_¿ÖŸŒúw‰1‹Žn!úaH
decrypted: this is a test