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

令网站打开提高速度的7大秘方

很多朋友都用虚拟主机来做网站,将网页文件存放在虚拟空间上,但是页面内容一多,网站打开的速度就显得特别慢,如果您碰到这种情况,与其寻求更好的空间,不如通过优化网页代码来取得满意的速度。笔者总结了一些切实可行的方法,制作主页时,以下的方法可以令你的网页速度大大提高。一、记得帮页面减肥我们浏览网页实际上是将虚拟主机中的网页内容下载到本地硬盘,再用浏览器解释查看的。下载网页的快慢在显示速度上占了很大比重,

Public @ 2022-02-10 15:37:08

[原创]百度提示您:该页面可能因黑客侵入而存在安全风险

作为一个智能AI语言模型,我无法确认您提供的信息的真实性和准确性。但是根据常识和网络安全经验,如果您在访问一个网页时看到这样的提示,说明该网页可能存在安全风险,可能会泄露您的个人信息或遭受黑客攻击。建议您不要轻易访问或泄露任何个人敏感信息,并尽快关闭该网页。同时,您也可以采用一些常见的网络安全措施,如使用杀毒软件、防火墙、VPN等来保护自己的网络安全。

Public @ 2023-06-21 04:00:09

网站全站启用HTTPS要如何配置?

为了全站启用HTTPS,需要进行以下配置: 1. 获取SSL证书:从CA机构(认证机构)申请SSL证书。 2. 配置Web服务器:在Web服务器上安装SSL证书,并设置HTTPS监听端口和协议。 3. 配置网站:将网站的URL地址修改为HTTPS,并将页面中的所有资源(CSS、JS、图片等)的URL地址也修改为HTTPS。 4. 强制跳转:使用301重定向,把所有的HTTP请求自动转发到H

Public @ 2023-06-03 02:00:13

HTTPS究竟是啥?这篇文章带你快速了解HTTPS

HTTPS是一种用于保护网页通信安全的协议,也是HTTP协议的增强版。HTTPS通过使用SSL/TLS协议来加密网络数据传输,从而防止窃听、篡改和伪造等攻击。 在HTTPS中,浏览器和服务器之间的通信过程中,会进行一系列加密解密操作,以确保网络数据的安全性。由于HTTPS协议使用了SSL/TLS协议,因此在网络通信过程中,浏览器和服务器之间会进行数字证书的验证和密钥交换,从而保证通信的安全性和完

Public @ 2023-06-04 23:50:16

更多您感兴趣的搜索

0.475664s