1.js文件内容:

/**
*
* Secure Hash Algorithm (SHA256)
* http://www.webtoolkit.info/
*
* Original code by Angel Marin, Paul Johnston.
*
**/
function SHA256(s){var chrsz = 8;var hexcase = 0;function safe_add (x, y) {var lsw = (x & 0xFFFF) + (y & 0xFFFF);var msw = (x >> 16) + (y >> 16) + (lsw >> 16);return (msw << 16) | (lsw & 0xFFFF);}function S (X, n) { return ( X >>> n ) | (X << (32 - n)); }function R (X, n) { return ( X >>> n ); }function Ch(x, y, z) { return ((x & y) ^ ((~x) & z)); }function Maj(x, y, z) { return ((x & y) ^ (x & z) ^ (y & z)); }function Sigma0256(x) { return (S(x, 2) ^ S(x, 13) ^ S(x, 22)); }function Sigma1256(x) { return (S(x, 6) ^ S(x, 11) ^ S(x, 25)); }function Gamma0256(x) { return (S(x, 7) ^ S(x, 18) ^ R(x, 3)); }function Gamma1256(x) { return (S(x, 17) ^ S(x, 19) ^ R(x, 10)); }function core_sha256 (m, l) {var K = new Array(0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5, 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5, 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3, 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174, 0xE49B69C1, 0xEFBE4786, 0xFC19DC6, 0x240CA1CC, 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA, 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7, 0xC6E00BF3, 0xD5A79147, 0x6CA6351, 0x14292967, 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13, 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85, 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3, 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070, 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5, 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3, 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208, 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2);var HASH = new Array(0x6A09E667, 0xBB67AE85, 0x3C6EF372, 0xA54FF53A, 0x510E527F, 0x9B05688C, 0x1F83D9AB, 0x5BE0CD19);var W = new Array(64);var a, b, c, d, e, f, g, h, i, j;var T1, T2;m[l >> 5] |= 0x80 << (24 - l % 32);m[((l + 64 >> 9) << 4) + 15] = l;for ( var i = 0; i<m.length; i+=16 ) {a = HASH[0];b = HASH[1];c = HASH[2];d = HASH[3];e = HASH[4];f = HASH[5];g = HASH[6];h = HASH[7];for ( var j = 0; j<64; j++) {if (j < 16) W[j] = m[j + i];else W[j] = safe_add(safe_add(safe_add(Gamma1256(W[j - 2]), W[j - 7]), Gamma0256(W[j - 15])), W[j - 16]);T1 = safe_add(safe_add(safe_add(safe_add(h, Sigma1256(e)), Ch(e, f, g)), K[j]), W[j]);T2 = safe_add(Sigma0256(a), Maj(a, b, c));h = g;g = f;f = e;e = safe_add(d, T1);d = c;c = b;b = a;a = safe_add(T1, T2);}HASH[0] = safe_add(a, HASH[0]);HASH[1] = safe_add(b, HASH[1]);HASH[2] = safe_add(c, HASH[2]);HASH[3] = safe_add(d, HASH[3]);HASH[4] = safe_add(e, HASH[4]);HASH[5] = safe_add(f, HASH[5]);HASH[6] = safe_add(g, HASH[6]);HASH[7] = safe_add(h, HASH[7]);}return HASH;}function str2binb (str) {var bin = Array();var mask = (1 << chrsz) - 1;for(var i = 0; i < str.length * chrsz; i += chrsz) {bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (24 - i%32);}return bin;}function Utf8Encode(string) {string = string.replace(/\r\n/g,"\n");var utftext = "";for (var n = 0; n < string.length; n++) {var c = string.charCodeAt(n);if (c < 128) {utftext += String.fromCharCode(c);}else if((c > 127) && (c < 2048)) {utftext += String.fromCharCode((c >> 6) | 192);utftext += String.fromCharCode((c & 63) | 128);}else {utftext += String.fromCharCode((c >> 12) | 224);utftext += String.fromCharCode(((c >> 6) & 63) | 128);utftext += String.fromCharCode((c & 63) | 128);}}return utftext;}function binb2hex (binarray) {var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";var str = "";for(var i = 0; i < binarray.length * 4; i++) {str += hex_tab.charAt((binarray[i>>2] >> ((3 - i%4)*8+4)) & 0xF) +hex_tab.charAt((binarray[i>>2] >> ((3 - i%4)*8 )) & 0xF);}return str;}s = Utf8Encode(s);return binb2hex(core_sha256(str2binb(s), s.length * chrsz));
}
module.exports = {sha256: SHA256
}

2.引用:

import secret from "./sha256.js"
let res = secret.sha256('想要加密的字符串')
// res就是最终的结果

参考地址:https://www.cnblogs.com/Nick-Hu/p/13259967.html

微信小程序中使用 SHA256加密相关推荐

  1. 微信小程序中使用md5加密

    微信小程序中有以下需求,密码需要md5加密后的密码. 请求参数 名称 必选/可选 类型 位置 说明 Content-Type 必选 String Header 消息体的媒体类型,必须为"ap ...

  2. 微信小程序中的SM2加密

    背景 项目在进行等保测试时,发现小程序部分接口通过修改接口参数可以获取到部分敏感信息,属于严重漏洞.为了减少代码改动工作量,考虑使用国密SM2对参数进行统一加密后,后端需要解密后再使用.同时考虑到部分 ...

  3. 微信小程序中用户登录和登录态维护

    微信小程序和以前的web项目不同,他是前后端分离的应用,之前我们的传统登录有web服务器提供Session维护, 后端在返回结果给前端web项目时,带上cookie,且以cookie值为key存储用户 ...

  4. 微信小程序中通过Basic Auth传递token

    npm导入用于Base64加密的工具包js-base64 // package.js "dependencies": {"js-base64": "^ ...

  5. 微信小程序使用crypto.js加密解密

    微信小程序中使用crypto.js crypto.js是用来进行AES加密的 注意AES在使用时有7个配置项,前后端加解密记着统一参数,测试时注意配置项的选择是否一致. 测试工具: AES加密测试工具 ...

  6. 微信小程序登录密码MD5加密

    在小程序中,页面的脚本逻辑是在JsCore中运行,JsCore是一个没有窗口对象的环境,所以不能在脚本中使用window,也无法在脚本中操作组件.zepto/jquery 也无法使用,因为zepto/ ...

  7. 微信小程序 - 引入使用 MD5 加密

    前言 在微信小程序中,有时后端接口可能需要咱们前端加密一些字段,比如密码等敏感数据. 如果您有这个需求,可参考本文完成引入及使用 md5, 例如以下示例,调用一个函数即可完成转换. 666666 =& ...

  8. 微信小程序中如何获取用户手机号授权登录

    随着微信小程序的普及,许多应用程序需要用户登录才能提供更好的服务.而获取用户手机号码是验证用户身份和确保账户安全的重要步骤之一.因此,在本文中,我们将介绍如何在微信小程序中实现手机号授权登录. 步骤一 ...

  9. 使用nginx反向代理在微信小程序中使用http请求

    使用nginx反向代理在微信小程序中使用http请求 由于微信小程序对第三API的请求做了限制官方说明文档,导致我们无法访问非https的请求,然而我们在开发小程序过程中所请求的第三方接口不一定都是h ...

最新文章

  1. Matlab参考函数
  2. linux服务器网页出现错误,常见网页错误 | Linux 主机 (cPanel) - GoDaddy 帮助 SG
  3. 03 | 基础篇:经常说的 CPU 上下文切换是什么意思?(上)
  4. IOS开发基础之网易新闻环境搭建异步请求json,AFN网络封装第1天
  5. csrf攻击 java_java使用jsp servlet来防止csrf 攻击的实现方法
  6. Android 人脸实名验证demo——腾讯人脸核身·云智慧眼
  7. 如何防止远程程序与RDS PG连接中断
  8. Material-Animations
  9. iOS设计模式之备忘录模式
  10. 医院耗材管理系统开发_0
  11. spring 项目中设置maven镜像源
  12. JAVA大型OA协同办公系统源码【源码免费分享】
  13. PS2019 常用快捷键大全
  14. 英文名字及意义(超全)
  15. python续行_python的续行
  16. 计算机网络 - ECMAScript和Javascript、jscript关系
  17. echarts中如何设置geo3D地图背景图片,以及geo3D中如何使用effectScatter属性
  18. html和css基础知识recap(含大量链接参考)
  19. 共用体和结构体所占内存大小的计算方法
  20. JQuery 操作弹出层 iframe页面元素的方式

热门文章

  1. idea 到阿伯快捷键_阿伯泰邓迪大学
  2. 高燃、邓迪、张鹤翔 MySee创业团队
  3. 【python】print函数的用法示例与讲解
  4. 13星座性格购买iphone6s的搞笑反映
  5. 实用英语:女生拒绝男生搭讪的经典英语句
  6. 机械臂正运动学(1)——MDH下的正解(自编)
  7. matlab示波器图形保存,MATLAB中示波器数据的绘图与保存
  8. 另眼看嘀嘀:打车类应用背后的政策风险
  9. dll是什么呢?dll丢失如何解决?
  10. 上自由职客,Java工程师不再朝九晚五