同じソフトの別のインスタンスにデータを送信する前にデータを暗号化する必要があるソフトウェアを開発します(もちろん復号化する必要があります)。私は最初に 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 サーバーに配置され、暗号化する必要があります。
ありがとう、
セドリック