Categories


Tags


HTTP使用RSA公钥加密算法加密明文

网站想要加密传输数据以防被窃取,最可靠的方式莫过于使用公钥加密算法加密,使用HTTPS协议的网站在整个传输过程中都使用了这个技术,对于未能使用HTTPS的HTTP网站我们也可以自行实现。

功能说明

由于HTTP是直接传输明文数据的,在网络安全越发严峻的今天,未经加密的HTTP方式已经变得岌岌可危,谷歌公司更是直接表明在搜索结果中会优先考虑使用HTTPS加密的网站。

尽管整体趋势是向HTTPS倾斜的,但是由于诸多服务器以及CDN等服务商还没全面兼容HTTPS协议,目前要实现整站切换至HTTPS协议可行性还不高。

同时安全形势又刻不容缓,对此,我们可以自行实现RSA加密私密信息。

算法说明

由于多梦数学不是很好,RSA公钥加密算法的具体实现多梦就不多说了,对算法的实现有兴趣的童鞋可以去看看阮一峰的“RSA算法原理”,下面多梦就说说RSA算法的效果。

RSA算法是非对称加密算法的一种,也叫公钥加密。

和对称加密算法不同的是,对称加密算法是加密和解密都使用同一把钥匙同一种规则,也就是如果你知道怎么加密的,你就知道怎么解密了。所以算法和密钥不能泄露,否则加密就无意义了。

而公钥加密算法则是同时拥有两把钥匙,一个叫公钥,一个叫私钥。这两个钥匙是对应的,使用公钥加密的内容只有使用私钥才能解密,使用私钥加密的内容只有使用公钥才能解密。所以算法和公钥都是可以公开的,只要私钥还是私密的,就是安全的。

实现思路

由于我们是加密HTTP要发送的数据,所以加密过程是要在客户端浏览器完成的,算法和密钥都需要在发送HTTP数据之前就已经存在浏览器中,此时使用对称加密算法已经无意义,因为别人根据你这个加密可以直接解密。

所以我们需要选择非对称性加密,在网页中引入算法和公钥加密,然后发送HTTP数据到服务器,服务器再根据私钥解密。因为私钥是私密的,所以算法和公钥公开也是无法解密,也是安全的。

具体到HTTP请求的加密实现,就是在网页提交表单数据之前使用JavaScript实现公钥加密数据,然后服务器接受到加密数据后,使用PHP或其他服务器语言进行私钥解密。

扩展阅读

使用JavaScript实现OpenSSL RSA加密和解密:https://github.com/travist/jsencrypt

使用PHP实现OpenSSL RSA加密和解密:http://php.net/manual/zh/ref.openssl.php

来源:投稿,原文链接。

来源:月光博客


Public @ 2017-11-18 15:56:00

国外优秀开源PHP建站程序一览

1. WordPress: 最流行的开源PHP建站程序之一,用于创建博客、个人网站和商业网站。它有一个庞大的社区支持和数百个插件和主题。 2. Drupal: 一个功能强大的开源PHP建站程序,用于创建各种类型的网站,包括社交媒体、电子商务和企业级网站。Drupal 拥有庞大的社区支持和数百个模块和主题。 3. Joomla: 另一个流行的开源PHP建站程序,用于创建各种类型的网站,包括电子商

Public @ 2023-04-22 07:50:12

流量的算法是怎么算的?每月10G是什么意思?

流量的算法通常是基于数据传输的用量进行计算的。具体算法因网络运营商的不同而有所差异,但一般会根据用户在网络上上传、下载的数据量来计算流量消耗。 每月10G指的是每个月可以使用的流量数据量为10G,其中1G等于1024MB,1MB等于1024KB。这意味着在一个月内,用户可以上传下载总计不超过10G的数据量,超过的部分可能会导致额外的费用或限制网络访问速度。 在手机或宽带等网络套餐中,通常会给用

Public @ 2023-06-29 13:00:12

HTTPS站点如何建设才能对百度友好

以下是一些建议: 1. 安装SSL证书,使站点支持HTTPS协议。这会使站点更加安全,受到更好的百度搜索引擎排名。 2. 确保站点的内容和链接被正确地设置为HTTPS链接,以避免任何内容或链接的HTTP和HTTPS之间的混淆。 3. 通过安装扩展名以避免站点中的重定向错误。确保所有站点修复完所有的HTTPS错误。 4. 确保所有内容(包括图像、脚本和其他资源)都可以从HTTPS站点加载。这

Public @ 2023-06-03 08:50:16

HTTPS的工作原理,哪些网站适合使用HTTPS?

HTTPS的工作原理是通过SSL或TLS协议来加密通信内容,保证数据传输的安全性。 当用户访问使用HTTPS协议的网站时,浏览器和服务器之间会进行一次握手过程。首先,浏览器向服务器发送一个"Hello"请求,服务器会返回一个数字证书,该证书由CA(证书颁发机构)签发,证明了该网站的身份。浏览器会验证此数字证书,如果验证通过,则浏览器和服务器采用对称密钥加密方式进行通信,保证数据的机密性和完整性。

Public @ 2023-05-28 03:50:15

更多您感兴趣的搜索

0.492306s