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

网站美观重要还是实用重要?

我设计和推广网站已经有几年时间了。但是网站到底是实用重要还是美观重要?到现在为止,也还是经常在脑子里转来转去,没办法有一个确定的答案。当然两者兼得最好。但实际上往往两者不能兼得。这时候必须选择以其中的一个方面为主。今天在读冯英健博士的一篇博客文章:新竞争力网站为什么不做漂亮一点?又引起了我对这个问题的思考。应该说新竞争力网站确实不漂亮,但是却是很少几个我会经常去看的中文网站之一。为什么呢?当然第一

Public @ 2009-10-24 15:45:11

也看网站用户体验

算算时间,笔者从事互联网行业已经3年多了,这3年时间一直再做网站运营,对这个行业真是又爱又恨,3年时间大大小小运营了很多网站,有成功有失败。一路走下来,发现自己确实学会了很多东西,同时也丢掉了很多东西。最近几个月的在做一个新网站时,让我认识一样东西的重要性:用户体验,所以今天笔者想把近几个月的感悟和大家分享一下。用户体验每个互联网从业人员天天都在说的词,在互联网没普及之前,用户体验就各类产品中扎根

Public @ 2019-08-18 15:18:34

如何在阿里云申请免费的SSL证书?

如果网站要升级为Https,就需要SSL证书。本教程以图文形式介绍,通过阿里云免费申请SSL证书的流程。Step1:打开阿里云SSL证书页面:免费SSL证书,点击“立即购买”,如图所示:image.Step2:选择“DV单域名证书”,证书个数选择“20个”,点击“立即购买”,如图所示:image.Step3:0元支付,如图所示:image.image.Step4:点击“登录管理控制台”,点击“证书

Public @ 2011-11-06 15:56:14

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

HTTPS是建立一个信息安全通道,来保证数据传输的安全,有效保障用户隐私数据,截取也无法解密。一般来说,HTTPS 主要用途有三个:一是通过证书等信息确认网站的真实性;二是建立加密的信息通道;三是数据内容的完整性。HTTPS的工作原理HTTPS在 HTTP 传输协议的基础上对网站进行认证,给予它独一无二的身份证明,再对网站数据进行加密,并对传输的数据进行完整性验证。比如:① 当你访问HTTPS的网

Public @ 2023-01-14 15:56:08

更多您感兴趣的搜索

0.487185s