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

虚拟主机WordPress部署SSL注意事项(301跳转)

在为虚拟主机部署SSL证书时,需要注意以下事项: 1. 301跳转:在为WordPress站点部署SSL证书后,需要将所有HTTP的请求跳转到HTTPS,即需要设置301跳转。可以在.htaccess文件中添加以下代码: ``` RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{

Public @ 2023-04-26 07:50:09

浏览器停止支持SHA-1算法,我国用户如何应对?

SHA-1算法已经不再安全,各大主流浏览器都已停止支持。对于中国用户,可以通过以下方法应对: 1. 升级浏览器版本:用户可以下载最新版本的浏览器,确保浏览器支持SHA-2算法,以确保浏览器的安全性。 2. 更新操作系统:用户应尽可能更新操作系统版本,因为操作系统也使用SHA-1算法。更新操作系统可以保证系统的安全性。 3. 更新应用程序:用户应更新所有使用SHA-1算法的应用程序,以确保这些

Public @ 2023-03-28 16:00:29

有关HTTPS配置常见问题,使用HTTPS站点建议

有关HTTPS配置常见问题1、升级HTTPS会影响爬虫抓取吗?答:不会的,爬虫对HTTPS合法链接都是能抓取。2、升级HTTPS会影响排名点击流量吗?答:不会的,HTTPS改造是不会涉及到域名切换,老域名转变到新域名这个是不涉及的。3、升级HTTPS会影响索引量吗?答:不会的,HTTPS的建库是不会有延迟。4、升级HTTPS会影响站长平台工具吗?答:不会的,站长平台链接提交工具现在都是支持HTTP

Public @ 2022-01-20 15:56:12

部署https后访问提存在安全隐患NET::ERR_SSL_OBSOLETE_VERSION

部署https后访问域名出现如下提示:您的连接存在安全隐患此网站使用的安全性配置已过时,这可能会导致您的信息(例如密码、消息或信用卡卡号)在发送至此网站的过程中遭到泄露。NET::ERR_SSL_OBSOLETE_VERSION原因是服务器openssl版本过低,较新版本的浏览器会提示不安全,openssl version -a可查看openssl版本Openssl 1.0.0h支持SSLv2,S

Public @ 2010-10-11 15:55:57

更多您感兴趣的搜索

0.481431s