Я разрабатываю программное обеспечение, которое должно зашифровать данные, прежде чем отправлять их в другой экземпляр того же программного обеспечения (которое, конечно, должно расшифровывать). Сначала я использую openssl_public_encrypt / openssl_private_decrypt, вот так
foreach(str_split($sData, MAXSIZE) as $sChunk)
{
if( ! @openssl_public_encrypt($sChunk, $crypted, $sPublicKey)) throw new Exception('openssl_public_encrypt');
$aCrypted[] = $crypted;
}
и
$sResult = '';
foreach($aCrypted['data'] as $ct => $sChunkCrypted)
{
if( ! openssl_private_decrypt($sChunkCrypted, $sChunk, $sPrivateKey)) throw new Exception("decrypt");
$sResult .= $sChunk;
}
потому что фрагмент данных для шифрования не может быть больше ключа, но часть дешифрования занимает слишком много времени (xdebug говорит мне, что это вызовы openssl_private_decrypt (), которые занимают все время).
Я пытаюсь с симметричными алгоритмами mcrypt_decrypt / MCRYPT_RIJNDAEL_256 (с openssl для шифрования ключа), но это хуже. Что я могу сделать, чтобы безопасно передавать большой объем данных? Файлы имеют формат CSV (текст) и помещаются на сервер SSH / SFTP, они должны быть зашифрованы.
Спасибо
Седрик