数据我开发具有隐窝数据之前将其发送到相同的软(有解密它当然)的另一个实例软件。我先用openssl_public_encrypt/openssl_private_decrypt,像地穴大量的PHP
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服务器上,它们必须被加密。
感谢,
塞德里克
为什么不使用[SCP(http://php.net/manual/en/function.ssh2-scp-send.php)? –
因为我需要隐藏数据,即使服务器之间的副本是安全的,并且SFTP的安全性也不比SCP低。对? –
当然,SFTP也很好。如果您需要加密存储的数据,为什么不在文件系统级别执行?如果性能是一个问题,这应该比任何你可以用PHP编写的任何东西都快。如果这听起来像你想探索的东西,看看[eCryptfs](https://launchpad.net/ecryptfs)。 –