随笔分类 - 算法
前端加密解密crypto
摘要:crypto 模块提供了加密功能,包含对 OpenSSL 的哈希、HMAC、加密、解密、签名、以及验证功能的一整套封装。我们这里讲crypto AES算法加密 一、使用步骤 1.引入Crypto 1.1 使用Crypto,有两种形式。一种是是在script便签直接引入,例如: <script src
阅读全文
appid app_key app_secret
摘要:AppID:应用的唯一标识AppKey:公匙(相当于账号)AppSecret:私匙(相当于密码) token:令牌(过期失效) 使用方法 1. 向第三方服务器请求授权时,带上AppKey和AppSecret(需存在服务器端) 2. 第三方服务器验证AppKey和AppSecret在DB中有无记录 3
阅读全文
JS的二进制:Blob、ArrayBuffer和Buffer
摘要:概述 Blob: 前端的一个专门用于支持文件操作的二进制对象 ArrayBuffer:前端的一个通用的二进制缓冲区,类似数组,但在API和特性上却有诸多不同 Buffer:Node.js提供的一个二进制缓冲区,常用来处理I/O操作 Blob 我们首先来介绍Blob,Blob是用来支持文件操作的。简单
阅读全文
浅析DES、AES、RSA、MD5加密算法及其应用场景
摘要:对称加密算法DES 算法:全称为Data Encryption Standard,一种典型的块加密方法,将固定长度的明文通过一系列复杂的操作变成同样长度的密文,块的长度为64位。同时,DES 使用的密钥来自定义变换过程,因此算法认为只有持有加密所用的密钥的用户才能解密密文。 DES 的密钥表面上是6
阅读全文
单向数据流和双向数据流
摘要:在react中是单向数据绑定,而在vue中的特色是双向数据绑定。但是其实就我个人的理解是: 其实无论是vue还是react其实还是提倡单向数据流去管理状态,这一点在vuex和redux状态管理器上体现的很明显。只是vue为UI控件提供了双向数据绑定的方式,在一些需要实时反应用户输入的场合会非常方便。
阅读全文
MVVM框架简单实现
摘要:众所周知当下是MVVM盛行的时代,从早期的Angular到现在的React和Vue,再从最初的三分天下到现在的两虎相争。 无疑不给我们的开发带来了一种前所未有的新体验,告别了操作DOM的思维,换上了数据驱动页面的思想,果然时代的进步,改变了我们许多许多。 啰嗦话多了起来,这样不好。我们来进入今天的主
阅读全文
【AST篇】教你如何编写 Eslint 插件
摘要:前言 虽然现在已经有很多实用的 ESLint 插件了,但随着项目不断迭代发展,你可能会遇到已有 ESLint 插件不能满足现在团队开发的情况。这时候,你需要自己来创建一个 ESLint 插件。 本文我将带你了解各种Lint工具的大致历史,然后一步一步地创建一个属于你自己的 ESLint 插件,以及教
阅读全文
利用WebSocket、sockte.io和EventSource实现服务端推送
摘要:可能有很多的同学有用 setInterval 控制 ajax 不断向服务端请求最新数据的经历(轮询)看下面的代码: setInterval(function() { $.get('/get/data-list', function(data, status) { console.log(data)
阅读全文
webAR涉及的技术
摘要:1.技术体系 1.1技术体系整理 其中绿色底色的代表Demo中表现出的能力比较成熟,可以直接应用。 脑图地址:http://naotu.baidu.com/file/3392a895a903972520b2f65fda12ee3c?token=55695cff60c6e275 1.2 兼容性 Web
阅读全文
JS 中的广度与深度优先遍历
摘要:现在有一种类似树的数据结构,但是不存在共同的根节点 root,每一个节点的结构为 {key: 'one', value: '1', children: [...]},都包含 key 和 value,如果存在 children 则内部会存在 n 个和此结构相同的节点,现模拟数据如下图: 已知一个 va
阅读全文
堆、栈和队列
摘要:1. 堆 堆是在程序运行时,而不是在程序编译时,申请某个大小的内存空间。即动态分配内存,对其访问和对一般内存的访问没有区别。堆是指程序运行时申请的动态内存,而栈只是指一种使用堆的方法(即先进后出)。 2. 栈(stack)——先进后出,删除与加入均在栈顶操作 栈也称为堆栈,是一种线性表。 堆栈的特性
阅读全文