相关疑难解决方法(0)

SSL的替代方案 - "手动"加密?

我想加密在我的Web应用程序中在服务器和客户端之间来回传输的数据.我会使用SSL,但需要证书和专用IP地址.我没有问题获得证书,但专用IP要求我升级到我的Web主机上每月20美元的商业托管计划.我没有计划这样做,因为我坚持我的20美元/年共享主机方案.

所以,我想实现SSL的替代方案.但它确实比SSL更多.除了加密来回发送的数据外,它还加密数据库中的行.我在考虑做这样的事情:

JavaScript代码:

var transfer_key = 'whatever'; 
function encrypt(data, key) {...}
function decrypt(data, key) {...}

function send_data_to_server(url, data)
{
    $.post(url, {'data' : encrypt(data, transfer_key) }, function(response) {
        var decrypted_response = JSON.parse(decrypt(response));
    });
}
Run Code Online (Sandbox Code Playgroud)

PHP代码:

$data = $_POST['data']; 
$transfer_key = 'whatever'; 
$storage_key = 'whatever2'; 

function encrypt($data, $key) {...}
function decrypt($data, $key) {...}

databaseQuery('INSERT INTO table VALUES (?)', encrypt($data, $storage_key)); 

$decrypted_data = decrypt($data, $transfer_key); 
$response = processData($decrypted_data); 

echo encrypt($transfer_key, $response); 
Run Code Online (Sandbox Code Playgroud)

如您所见,客户端发送到服务器的数据是加密的,反之亦然.并且数据库中的数据也被加密.当然,我永远不会实现这样的键.我可能会为每个用户随机生成第二个或第三个密钥.因此,transfer_key可以等于与随机密钥连接的constant_key,对于storage_key也是如此.

这会是SSL的一个很好的替代品吗?如何以一种难以击败的方式实现这种类型的加密?这种方法有什么特别的缺点吗?

我可能会找到一个负责加密的JS库,并在服务器端使用PHP的mcrypt扩展.我在想Blowfish,也许是AES256,但我不确定哪一个能给我加密强度与内存消耗的最佳比例.

建议吗?

php security encryption ssl

5
推荐指数
3
解决办法
5497
查看次数

标签 统计

encryption ×1

php ×1

security ×1

ssl ×1