我有一个连接的字符串,我想将它作为查询字符串传递。为了安全起见,我想使用gpg私钥加密连接字符串,该私钥位于此.php文件驻留在远程服务器上的同一文件夹中。
我想知道将公钥和私钥保存在远程服务器上并将其用于加密和解密是否安全。
答案 0 :(得分:1)
第一个问题:为什么? - 如果要在同一服务器上传输数据,请使用PHP会话或将其存储在数据库中。如果您想将数据从一台服务器传输到另一台服务器,请在这些服务器之间使用另一条通信通道,例如发送数据的HTTP请求。
如果您仍想这样做:我不会使用GPG,因为这会产生相当多的CPU负载并且会大大增加消息的大小,因此您的数据相对较短。最好使用blowfisch或类似的算法,例如参见PHP's crypt function。
关于安全性:它或多或少与整个服务器一样安全,但您应该确保您的私钥隐藏在Web服务器的文档根目录之外。读取权限应限于Web服务器用户...
答案 1 :(得分:0)
尝试使用这些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