Я ищу некоторые функции для шифрования и расшифровки строк в php с использованием указанного ключа.
Благодаря!
Начните с этого: http://www.ibm.com/developerworks/opensource/library/os-php-encrypt/
После этого взгляните на ответ Паскаля МАРТИНА в разделе Как мне зашифровать строку в PHP?
Основная реализация openssl, которую я использовал ранее:
class MyEncryption { public $pubkey = '...public key here...'; public $privkey = '...private key here...'; public function encrypt($data) { if (openssl_public_encrypt($data, $encrypted, $this->pubkey)) $data = base64_encode($encrypted); else throw new Exception('Unable to encrypt data. Perhaps it is bigger than the key size?'); return $data; } public function decrypt($data) { if (openssl_private_decrypt(base64_decode($data), $decrypted, $this->privkey)) $data = $decrypted; else $data = ''; return $data; } }
Вам нужно будет создать пару ключей RSA. См. Здесь информацию о том, как это сделать. Хранение частного ключа в самом файле – плохая идея. Это просто пример. В идеале вы хотели бы, чтобы пользователь предоставлял закрытый ключ во время дешифрования
вы пробовали mcrypt ?
Я предполагаю, что вы имели в виду симметричное шифрование ключа. mcrypt поддерживает несколько алгоритмов (например, AES, Tripel DES). Однако есть один улов, он не поддерживает какой-либо алгоритм заполнения, поэтому вы не сможете вернуть исходную длину. У вас есть 2 варианта, чтобы обойти эту проблему,
Добавьте поле длины перед текстом. Скажем, используйте первые 4 байта как длину.
Сделайте PKCS № 5 самостоятельно. На этой странице есть примеры кода: http://www.php.net/manual/en/function.mcrypt-encrypt.php