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

网站成功关键之一:网站设计

一个网站的成功与否,很大程度上取决于网站设计的好坏。网站设计不仅仅是指网站页面的外观,还包括网站的结构、内容布局、交互方式、可用性等方面,这些都需要仔细地设计和考虑。以下是网站设计关键的一些方面: 1. 用户体验:好的网站设计应该能使用户有良好的体验,为用户提供方便、快捷、一致的交互方式,帮助用户满足他们的需求。 2. 网站结构:合理的网站结构能让用户更容易浏览和定位网站的内容,有利于搜索引擎

Public @ 2023-04-17 14:50:33

国家互联网应急中心通知被HOLD域名申请解封流程

根据工业和信息化部颁布的《木马和僵尸网络监测与处置机制》(工信部保[2009]157号)规定,由CNCERT/CC(国家互联网应急中心) 负责监测和协调处置网站涉嫌传播恶意代码事件。我司根据CNCERT/CC的要求会对相关被利用进行传播恶意代码或从事网页仿冒等恶意活动的域名进行暂停域名解析的处置。 若您需要恢复域名正常使用,请按以下整改流程提交申请:1、请域名所有者根据被投诉的内容先自行整改,整改

Public @ 2021-11-23 15:45:32

站点切换HTTPS不会对流量产生负面影响

随着互联网不断发展,网站产生交易量、保留用户数据量大幅增加,信息安全成为非常重要的事情,同时百度已经全面实现了HTTPS,越来越多的站点也开始考虑HTTPS化。最近院长不断接到站点的询问:我们网站也想上全量HTTPS,但担心对线上流量产生负面影响,我们该怎么做才能消取这种影响呢?为此站长平台工程师中伟请教了多位不同领域的Baiduspider工程师后,终于搞清楚了几个问题:问:对于HTTP和HTT

Public @ 2020-10-03 15:35:53

在IIS下部署SSL证书实现HTTPS

注意:以下步骤假设您已经从第三方机构获取了SSL证书,并且已将它保存在了本地计算机上。 1. 打开Internet Information Services (IIS) Manager。 2. 在左侧导航栏中选择您的网站,并单击“Bindings”。 3. 在“Site Bindings”对话框中,单击“Add”按钮。 4. 在“Add Site Binding”对话框中,选择以下选项:

Public @ 2023-04-09 23:00:57

更多您感兴趣的搜索

0.514913s