nodejs开发微信小程序实现密码加密


Posted in NodeJs onJuly 11, 2017

微信小程序开发--实现密码加密具体步骤:

在utils中的util.js 文件中增加 函数 实现 字符串转换为16进制加密后的字符串:

function encodeUTF8(s) {

var i, r = [], c, x;

for (i = 0; i < s.length; i++)

if ((c = s.charCodeAt(i)) < 0x80) r.push(c);

else if (c < 0x800) r.push(0xC0 + (c >> 6 & 0x1F), 0x80 + (c & 0x3F));

else {

if ((x = c ^ 0xD800) >> 10 == 0) //对四字节UTF-16转换为Unicode

c = (x << 10) + (s.charCodeAt(++i) ^ 0xDC00) + 0x10000,

r.push(0xF0 + (c >> 18 & 0x7), 0x80 + (c >> 12 & 0x3F));

else r.push(0xE0 + (c >> 12 & 0xF));

r.push(0x80 + (c >> 6 & 0x3F), 0x80 + (c & 0x3F));

};

return r;

};

// 字符串加密成 hex 字符串

function sha1(s) {

var data = new Uint8Array(encodeUTF8(s))

var i, j, t;

var l = ((data.length + 8) >>> 6 << 4) + 16, s = new Uint8Array(l << 2);

s.set(new Uint8Array(data.buffer)), s = new Uint32Array(s.buffer);

for (t = new DataView(s.buffer), i = 0; i < l; i++)s[i] = t.getUint32(i << 2);

s[data.length >> 2] |= 0x80 << (24 - (data.length & 3) * 8);

s[l - 1] = data.length << 3;

var w = [], f = [

function () { return m[1] & m[2] | ~m[1] & m[3]; },

function () { return m[1] ^ m[2] ^ m[3]; },

function () { return m[1] & m[2] | m[1] & m[3] | m[2] & m[3]; },

function () { return m[1] ^ m[2] ^ m[3]; }

], rol = function (n, c) { return n << c | n >>> (32 - c); },

k = [1518500249, 1859775393, -1894007588, -899497514],

m = [1732584193, -271733879, null, null, -1009589776];

m[2] = ~m[0], m[3] = ~m[1];

for (i = 0; i < s.length; i += 16) {

var o = m.slice(0);

for (j = 0; j < 80; j++)

w[j] = j < 16 ? s[i + j] : rol(w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16], 1),

t = rol(m[0], 5) + f[j / 20 | 0]() + m[4] + w[j] + k[j / 20 | 0] | 0,

m[1] = rol(m[1], 30), m.pop(), m.unshift(t);

for (j = 0; j < 5; j++)m[j] = m[j] + o[j] | 0;

};

t = new DataView(new Uint32Array(m).buffer);

for (var i = 0; i < 5; i++)m[i] = t.getUint32(i << 2);

var hex = Array.prototype.map.call(new Uint8Array(new Uint32Array(m).buffer), function (e) {

return (e < 16 ? "0" : "") + e.toString(16);

}).join("");

return hex;

};

导出函数

module.exports = {

formatTime: formatTime,

sha1:sha1

}

这样就可以在其他页面中调用了

var util = require('../../utils/util.js')

util.sha1("123456")

以 密码为 123456 作为示例,在线加密结果

nodejs开发微信小程序实现密码加密

小程序中调用结果

nodejs开发微信小程序实现密码加密

加密结果是相同的

NodeJs 相关文章推荐
nodejs教程 安装express及配置app.js文件的详细步骤
May 11 NodeJs
Windows 系统下设置Nodejs NPM全局路径
Apr 26 NodeJs
nodejs微信公众号支付开发
Sep 19 NodeJs
nodejs中全局变量的实例解析
Mar 07 NodeJs
nodejs个人博客开发第三步 载入页面
Apr 12 NodeJs
nodejs入门教程六:express模块用法示例
Apr 24 NodeJs
Nodejs之http的表单提交
Jul 07 NodeJs
nodejs更改项目端口号的方法
May 13 NodeJs
Linux Centos7.2下安装nodejs&amp;npm配置全局路径的教程
May 15 NodeJs
nodejs用gulp管理前端文件方法
Jun 24 NodeJs
nodejs微信开发之接入指南
Mar 17 NodeJs
详解Nodejs get获取远程服务器接口数据
Mar 26 NodeJs
nodejs接入阿里大鱼短信验证码的方法
Jul 10 #NodeJs
Nodejs之TCP服务端与客户端聊天程序详解
Jul 07 #NodeJs
Nodejs之http的表单提交
Jul 07 #NodeJs
nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域)
Jul 05 #NodeJs
nodejs模块学习之connect解析
Jul 05 #NodeJs
详解HTTPS 的原理和 NodeJS 的实现
Jul 04 #NodeJs
nodejs 子进程正确的打开方式
Jul 03 #NodeJs
You might like
实用函数4
2007/11/08 PHP
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
2016/09/11 PHP
jQuery代码优化之基本事件
2011/11/01 Javascript
javascript实现des解密加密全过程
2014/04/03 Javascript
javaScript中with函数用法实例分析
2015/06/08 Javascript
[原创]Bootstrap 中下拉菜单修改成鼠标悬停直接显示
2016/04/14 Javascript
如何利用JSHint减少JavaScript的错误
2016/08/23 Javascript
webix+springmvc session超时跳转登录页面
2016/10/30 Javascript
js简单实现网页换肤功能
2017/04/07 Javascript
JavaScript 数组的进化与性能分析
2017/09/18 Javascript
微信小程序实现topBar底部选择栏效果
2018/07/20 Javascript
关于RxJS Subject的学习笔记
2018/12/05 Javascript
Moment.js实现多个同时倒计时
2019/08/26 Javascript
详解简单易懂的 ES6 Iterators 指南和示例
2019/09/24 Javascript
简单了解JavaScript弹窗实现代码
2020/05/07 Javascript
python删除过期文件的方法
2015/05/29 Python
python动态加载包的方法小结
2016/04/18 Python
使用PyV8在Python爬虫中执行js代码
2017/02/16 Python
关于python的list相关知识(推荐)
2017/08/30 Python
TensorFlow损失函数专题详解
2018/04/26 Python
Python中文分词库jieba,pkusegwg性能准确度比较
2020/02/11 Python
Python基于read(size)方法读取超大文件
2020/03/12 Python
使用python采集Excel表中某一格数据
2020/05/14 Python
传统HTML页面实现模块化加载的方法
2018/10/15 HTML / CSS
HTML5拖拽的简单实例
2016/05/30 HTML / CSS
HTML5开发动态音频图的实现
2020/07/02 HTML / CSS
大学生饮食配送创业计划书
2014/01/04 职场文书
聊城大学毕业生自荐书
2014/02/01 职场文书
祖国在我心中演讲稿400字
2014/05/04 职场文书
培训督导岗位职责
2015/04/10 职场文书
开学典礼观后感
2015/06/15 职场文书
父亲节感言
2015/08/03 职场文书
2016学习依法治国心得体会
2016/01/15 职场文书
公安干警正风肃纪心得体会
2016/01/15 职场文书
Java面试题冲刺第十五天--设计模式
2021/08/07 面试题
Python作用域和名称空间的详细介绍
2022/04/13 Python