兼容google双因子认证的TOTP算法

/** * 基于时间的一次性密钥生成算法,规则: * 1. 从T0开始已经过的时间,每个TI为一个单位,总数记为C。实践当中用时间戳除以间隔秒数(30S)得到 C. * 2. 使用C作为消息,K作为密钥,计算HMAC哈希值H(定义来

PHP实现base32编码与解码

base64编码大家都不陌生,其实除了base64还有base32,base16。这一系列的编码规则都是差不多。base64的规则可以另行参考。 这里简单地说一下base32的编码规则。base32是将原数据按5个字节分为一组(即 5 * 8 = 40bit

Elasticsearch中的重要查询

  • yiqingpeng
  • 2019-03-13
  • 0
  •  
"query": {   "<查询类型>":{...}, #只允许使用系统规定的类型集合中的一种   "from": <Integer>, #偏移量   "size": <Integer>, #文档数量   "post_filter":

Elasticsearch中 Query 与 Filter 的区别

Query 与 Filter的区别: Query要回答的问题是,匹配度有多高,并计算出匹配分数。其关注点是Match. Filter要回答的问题是,匹配与否,并且不需要计算分数,其关注点是Included or not. Query查询结果不会缓存

Javascript中实现Rot-13函数

  • yiqingpeng
  • 2019-03-08
  • 0
  • rot13 
if (!String.prototype.hasOwnProperty('rot13')) { String.prototype.rot13 = function (){ var rot = function(t, u, v){ return String.fromCharCode( ( ( t - u + v ) % ( v * 2 ) ) + u ); },

安装Elasticsearch1.7.6

  • yiqingpeng
  • 2019-03-01
  • 0
  •  
下载地址:https://www.elastic.co/downloads/past-releases/elasticsearch-1-7-6 Elastic依赖java8, 先安装javasdk yum install java-1.8.0-openjdk.x86_64  

php-pecl-imagick扩展安装后出现版本不匹配的警告

  • yiqingpeng
  • 2019-03-01
  • 0
  •  
安装了imagick扩展之后,运行php脚本,出现如下warning: PHP Warning:  Version warning: Imagick was compiled against Image Magick version 1689 but version 1690 is loaded. Imagick will run but may

SuiteScript如何根据fileId获取File的记录信息

  • yiqingpeng
  • 2019-02-22
  • 0
  •  
关键点是要在NetSuite中创建一个基于File的Saved Search,然后在SuiteScript中通过Search模块的search.load({id:<SavedSearchId>}), 配合Filter得到相应的File记录信息。示例代码如下: ** *@NApiVers

NetSuite之sftp模块的使用

  • yiqingpeng
  • 2019-02-22
  • 0
  •  
NetSuite的sftp模块可以用来连接sftp服务器并上传文件,目前仅支持用户名+密码的认证方式。 密码字段必须通过form.credentialField生成PasswordGuid得到。 首先第一步,制作credential form交互页用来得到P

download file via chrome extension

  • yiqingpeng
  • 2019-02-21
  • 0
  •  
首先配置manifest.json文件,添加download权限: { "manifest_version": 2, "name": "download artworks", "description": "download artworks", "version": "1.1", "update_url": "htt

aws s3 put object api 调用示例

  • yiqingpeng
  • 2019-02-18
  • 0
  •  
aws s3 put object api 调用示例: #!/usr/bin/python #coding=utf-8 import sys, os, base64, datetime, hashlib, hmac, urllib, json import requests # pip install requests def fileSiz

配置sftp

  • yiqingpeng
  • 2019-02-01
  • 0
  •  
为ftp用户专门设置组名 groupadd sftpgrp 添加用户sudo useradd -d /home/sftpusr -m -g sftpgrp -s /bin/bash sftpusr为用户设置登录密码 passwd sftpusr 设置ftp目录: mkdir /mnt/sftproot 非常关键的一点,要给sftproot设置

An input with search dropdown

  • yiqingpeng
  • 2019-01-11
  • 0
  •  

了解一下防抖和节流函数

  • yiqingpeng
  • 2019-01-09
  • 0
  •  
对于一些频繁发生的事件(如:resize, mousemove, key*, scroll等),简单地给它们设置监听函数会有一些性能上的影响,特别是在监听函数中有长耗时的操作时,将可能出现页面卡顿的现象。防抖函数和节流函数就是针对此

资源预加载

  • yiqingpeng
  • 2019-01-07
  • 0
  •  
DNS预解析 DNS-Prefetch <link rel="dns-prefetch" href="http://example.com"> 预连接(预先进行TCP握手并建立传输层协议) <link rel="preconnect" href="http://example.com"> 预获取(

前端跨域通信解决思路

  • yiqingpeng
  • 2019-01-07
  • 0
  •  
1、如果浏览器支持HTML5特性,那就直接使用postMessage Api,简单又好用。 如下: http://www.B.com //发送消息 function sendMessage(msg){ msg = JSON.stringify(msg); parent.window.postMessage(m

Javascript装饰者模式的实现

  • yiqingpeng
  • 2019-01-07
  • 0
  •  
装饰者模式的最大好处就是在对象的原有行为不发生改变的情况下,对其行为进行包裹,以扩展其原有行为的功能。下面讨论javascript中两种实现装饰器的方法: 1、使用继承: function Foo(){ } Foo.prototype.doS

vba实现http远程请求数据

  • yiqingpeng
  • 2019-01-01
  • 0
  •  
有一份Excel报表,里面有1w多条数据,并且有一列是IP地址,老板说,把每一行的IP对应的中文地址信息找出来。OMG,这怎么办??? 琢磨了一下,整理了思路:操作excel数据最好的方法->vba->vba通过给定的ip地

multipart/form-data类型请求体的手动拼装

HTTP协议规定的POST方法是客户端向服务端写入数据的操作,其请求体就是待写入的数据段。multipart/form-data是对请求体的格式进行规范化的定义,也有点类似于协议的味道。就比如application/json,它告之服务端,此次

Hack一下wrike

  • yiqingpeng
  • 2018-11-26
  • 0
  •  
wrike使用的字体是日文字体优先,所以在显示中文的时候,会将中文渲染得很奇怪,表象就是一段中文文字中,出现多种字体,看着很不舒服。 既然官方没有给出解决方法,那就只好自己hack一下了。 在wrike安装目录\Wr