如何用 Javascript 语言实现 SSL协议通讯

JavaScript043

如何用 Javascript 语言实现 SSL协议通讯,第1张

HTTPS协议存在的问题:1、授权费用高。2、局域网必须导入证书。简单的AJAX加密通讯:页面用HTTP协议传输,只加密AJAX部分。javascript初次访问时获取服务端公钥,然后将公钥永久存储在本地浏览器的HTML5容器中。后续通讯类似HTTPS协议,客户端用公钥加密随机秘钥,发送给服务端,然后双方就以此秘钥为基础进行本次会话的AJAX通讯。分析:只要初次访问时不被中间人拦截,后续的通讯都是安全的。初次访问就类似于浏览器的证书导入,访问一次即可。用途:局域网Web应用的安全通讯。安全性不如HTTPS高,但使用简单,不会有警告提示。

[鲜花]jspp是社交软件,无风险。JSPP是即时匹配团队自主研发的端到端加密通信。是一款安全私密的语音聊天交友软件,适合商务办公、熟人社交、文件加密、阅后即焚。不会泄露跟你本人相关的任何信息。所有聊天信息多重加密,安全传输,支持阅后即焚功能

NodeJs 提供了SSL/TLS 这样的安全连接协议库,so 我们可以用这样的协议与邮件服务器通讯。要写完一个完整的收邮件的工具还是需要一定的时间,流程大致如上面的流程图了。

那么什么是SSL?什么是TLS?

SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。

SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层: SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

安全传输层协议(TLS)用于在两个通信应用程序之间提供保密性和数据完整性。该协议由两层组成: TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake)。

TLS 的最大优势就在于:TLS 是独立于应用协议。高层协议可以透明地分布在 TLS 协议上面。然而,TLS 标准并没有规定应用程序如何在 TLS 上增加安全性;它把如何启动 TLS 握手协议以及如何解释交换的认证证书的决定权留给协议的设计者和实施者来判断。

可以看出为了邮件的安全性,采用SSL/TLS的通讯技术还是有必要的。废话不说,看代码:

首先引入库 var tls = require('tls')

var options = {

host: 'pop.qq.com',

port: 995,

user: '[email protected]',

pass: 'XXXXXXXXXX'

}

var Socket = tls.connect(options.port, options.host, cb_connected)

//注册事件-连接回调

Socket.on('connect', cb_connecting)

//注册事件-服务器返回数据处理

Socket.on('data', cb_Server_DataBack)

上面的cb_XXXX都是回调函数。至于端口和服务器地址大家参看邮件服务提供商的帮助了,是不是很简单,3行代码。

剩余的就是用户的操作,输入命令,执行,显示操作结果即可。

利用socket将命令写到服务端,like this : Socket.write("命令 \r\n")顺带一提命令以\r\n作为结束标记一定要写。

pop3协议的通信是一问一答的模式,想要做批量命令操作的小伙伴就要动点脑了

作者:DrS6

链接:https://www.jianshu.com/p/a54823eb0dbd

来源:简书

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。