我有一个连接字符串,我想将它作为查询字符串传递。为了安全起见,我想使用位于远程服务器上.php文件所在的同一文件夹中的gpg私钥加密连接字符串。加密查询字符串文本
我想知道将公钥和私钥保存在远程服务器上并将其用于加密和解密是否安全。
我有一个连接字符串,我想将它作为查询字符串传递。为了安全起见,我想使用位于远程服务器上.php文件所在的同一文件夹中的gpg私钥加密连接字符串。加密查询字符串文本
我想知道将公钥和私钥保存在远程服务器上并将其用于加密和解密是否安全。
第一个问题:为什么? - 如果您在同一台服务器上传输数据,请使用PHP会话或将其存储在数据库中。如果您希望将数据从一台服务器传输到另一台服务器,则还需要在这些服务器之间使用另一个通信通道,例如发送数据的HTTP请求。
如果你仍然想这样做:我不会使用GPG,因为这会产生相当多的CPU负载,并且会显着增加消息的大小,因此您的数据相对较短。例如使用blowfisch或类似的算法更好,参见PHP's crypt function。
关于安全性:它或多或少与整个服务器一样安全,但您应该确保您的私钥隐藏在Web服务器的文档根目录之外。和读权限应限制在Web服务器的用户...
尝试这些PHP函数convert_uuencode和convert_uudecode
function encrypt_decrypt ($data, $encrypt) {
if ($encrypt == true) {
$output = base64_encode (convert_uuencode ($data));
} else {
$output = convert_uudecode (base64_decode ($data));
}
return $output;
}
$enc_txt = encrypt_decrypt ("QUERY TEXT", true);
echo $enc_txt."\n";
// KjQ1NSU0RURANSQ1ODVgYGAKYAo=
echo encrypt_decrypt ($enc_txt, false);
// QUERY TEXT
我不知道我是否正确地得到你:是从网络访问此PHP文件?如果是这样,并且私钥驻留在相同的文件夹中,那么该密钥可能也是从完全不安全的网络访问的。 –