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. 什么是虚拟主机?答: 虚拟主机是在网络服务器上分出一定的磁盘空间供用户放置站点、应用组件等,提供必要的站点功能、数据存放和传输功能。所谓虚拟主机,也叫“网站空间”,就是把一台运行在互联网上的服务器划分成多个“虚拟”的服务器,每一个虚拟主机都具有独立的域名和完整的Internet服务器(支持WWW、FTP等)功能。2. 虚拟主机是否有独立的IP地址?答: 虚拟主机用户没有独立的IP

Public @ 2011-02-14 15:45:45

Struts2漏洞预警

Struts2 devMode导致远程代码执行漏洞什么是devMode?所谓的devMode模式,看名称也知道,是为Struts2开发人员调试程序准备的,在此模式下可以方便地查看日志等信息。默认情况下,devMode模式是关闭的。不过实际上仍然有很多网站上线的时候就赤裸裸地采用devMode模式,自然面临更大的安全问题,需要尽快修复。影响范围:当Struts开启devMode时,该漏洞将影响Str

Public @ 2019-03-12 15:44:42

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

2015年5月25日,百度站长平台发布公告,宣布全面放开对HTTPS站点的收录,HTTPS站点不再需要做任何额外工作即可被百度抓收。采用了本文之前建议的HTTPS站点可以关闭HTTP版,或者将HTTP页面跳转到对应的HTTPS页面。~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~百度搜索引擎目前不主动抓取HTTPS网页,导致大部分HT

Public @ 2020-10-22 15:35:51

什么是RPC协议?RPC协议与HTTP协议的区别

RPC(Remote Procedure Call)协议是一种远程过程调用协议,它允许一个计算机程序通过网络请求另一个计算机程序的服务。它是实现分布式计算的关键技术之一。 与HTTP协议相比,RPC协议是更为专业化的协议,用于不同计算机程序之间的通信,而HTTP协议则更广泛地用于 Web 应用中。与HTTP协议相比,RPC协议更加高效、灵活和安全,因为它通常使用二进制的消息格式,而HTTP协议则

Public @ 2023-06-18 23:50:17

更多您感兴趣的搜索

0.419237s