a.对称加密:加密和解密使用同一个密钥,优点是速度快,缺点是密钥的共享困难。典型的对称加密算法有DES/AES/RC5/3DES等。
b.非对称加密:生成一个秘密对(公钥和私钥),加密过程中可以是私钥加密公钥解密;也可以是公钥加密私钥解密;一般情况下私钥由服务器保存,公钥共享给客户端,采用公加私解的方式。它的特征是不论你得到公钥还是私钥都是无法逆推密钥对的另一半,这保证了密钥的安全性。缺点是加密速度极慢,不适合加密数据量大的流量。典型的非对称加密算法有RSA/DSA.
如何选择加密算法?
如果选择对称加密,密码的共享(传输)过程不安全;如果选择非对称加密,加密速度慢。一个完美的解决方案:用对称加密的密钥用于加密数据,用户非对称加密来保护对称加密的密钥,实现又快又安全的数据加密。保证了数据的私密性。
a.服务器生成密钥对(公钥和私钥)和认证请求,证书服务器分为:公共证书服务器(如微软、google等)和企业自建的私有证书服务器(openssl实现)。证书认证服务器提供了数据的不和否认性。
b.CA服务器根据认证请求为服务器颁发根证书,
c.服务器获取根证书并共享给客户机,客户导入根证书.
d.通讯过程中,客户机依据根证书确认公钥的合法性.
服务器使用HASH算法对所需传输的数据进行hash计算的出一串数字,并将这串数字公布,数据从服务器上传输到客户机后,客户机使用相同的hash算法计算hash值,如果和服务器公布的数字签名一致,则数据没有被篡改,反之亦然。这样就保证了数据的完整性。
a.客户端请求https链接(通过https://实现),服务端返回证书(携带了公钥、证书的颁发机构、选择一组加密算法和HASH算法等信息)给客户端。
b.客户端收到证书后:验证证书的合法性,生成随机密码(使用协商好的对称加密算法)并使用公钥加密,使用约定的HASH计算握手消息并使用随机密码对消息进行加密。
c.客户端将由公钥加密的随机密码和由随机密码加密过的HASH数字签名发给服务器。
d.服务器(网站)收到随机密码和数字签名后:用私钥解密得到随机密码,用随机密码解密得到数字签名,用数字签名验证握手消息的完整性。并使用随机密码加密一段握手消息发给客户端(浏览器)。
e.浏览器解密握手并计算握手hash,确保数据的完整性。之后的通信数据使用随机密码进行加密(对称算法)。
选择第三方即时通讯方案,我们应该从以下方面进行考虑:稳定性: 安全性: 功能性: 费用: 运维服务等,有哪些第三方IM即时通讯呢?比如:融云、JPush极光推送、网易云信、环信、云旺OpenIM等
window.postMessage() 方法可以安全地实现跨源通信。通常,对于两个不同页面的脚本,只有当执行它们的页面位于具有相同的协议(通常为 https),端口号( 443 为 https 的默认值)
服务器的实现很简单,先装一个nodeJs的模块,叫nodejs-websocket , 直接在nodeJs命令行中敲入:npm install nodejs-websocket回车就可以安装好了,然后就可以开始建立服务器了,因为有了nodejs-websocket模块
现在不管是桌面客户端还是移动客户端,都会夹杂着一部分H5页面,这种混合式的应用也是我们常说的Hybrid App。为什么会出现Hybrid App呢,早期是因为开发一个Android或iOS的客户端,需要的人力成本比较大,开发周期比较长
一个Angular应用一般情况下包含多个组件,而且要让组件互相之间能进行通讯(数据传送),这样才能构成一个有机的完整系统。组件之间有几种典型的关系:父子关系、兄弟关系、没有直接关系
Vue 2 中要进行跨元件通讯,除了Vuex 以外的另一个常见手法是Event Bus,对于小型专案来说Event Bus 相当方便,仅需要$on、$emit两个语法就能进行跨元件通讯。而Vue 3 中移除了$on、$off等语法
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!