之前看到一个类似的,但是源码不完整;在此总结一个可用的。

一、sha256.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));}

二、使用方法

1.可以创建一个sha256.js文件,然后把上方的代码复制进去。
2.前端引入这个js,然后调用SHA256()方法即可。
3.下面是f12控制台里的测试结果(亲测可用):

前端加密方法sha256.js源码+用法(亲测可用)相关推荐

  1. PHP最新B站视频直链解析源码下载+亲测可用

    正文: 使用教程:将程序源码传到根目录,打开压缩包里面的index.html,就可以在线解析了,另外bilibili.php里面要填写你的B站cookie,否则可能无法解析到1080P的视频. 程序: ...

  2. 2022最新wifi大师,wifi分销小程序源码,亲测可用

    话不多说,直接上干货 微信搜索,wifi鑫速连,就可以获得源码和解压密码

  3. Android 重启手机系统(手机root后可用)定时重启Android系统源码(亲测可用)

    定时重启Android系统源码,点击下面的GitHub链接哈 github源码:点击进入github查看 1.manifest中添加权限如下:[手机未root,运行报错,安装不上] 2.执行下面代码段 ...

  4. 还愁不能解密MD5值?简单代码就能实现md5加密解密,内附源码,亲测可用

    众所周知,md5本身是不可逆的,但我们可以使用以下代码中提供的接口进行解密啊!我试了下成功率是非常的高!8位以内的纯数字的md5值都可以解密. php代码 <?php $MiWen = &quo ...

  5. 前端控制微信分享到群,朋友圈的方法,js禁止微信分享 亲测可用

    直接上代码,下面代码都是开发过程中记录的怕丢了,就在这备个份,使用过程中有问题可以私信或者联系微信:wxid_7yiygpz72wk622 另也承接小程序,网站开发,H5开发,程序二次开发,APP开发 ...

  6. 用php实现md5解密源码,亲测可用

    <?php $md5 = "3ec4900f17489377e48dee29f06a49e3"; $uid = "hhp-ImZRY"; $token = ...

  7. 用php进行md5解密的源码,亲测可用

    1 <?php 2 $md5 = "c1c95b382230eb9e27a60c4baceb5f2e"; 3 $uid = "hhp-ImZRY"; 4 ...

  8. 提供4款WEB网页游戏源码下载,亲测绝对可以用

    提供4款WEB网页游戏源码下载,亲测绝对可以用! 软件名称:成就网络发布的web三国一键安装可开区版 软件类型:国产源码 运行环境:Win9X/Win2000/WinXP/Win2003/ 软件语言: ...

  9. 【WordPress主题】Ripro主题Ripro8.6破解无授权版wp主题源码【亲试可用】

    日主题做的非常不错,现在绝大部分资源站都是使用的ri主题,有实力的 还是尽量使用正版主题, 正版主题更新快,安全,有技术支持,而且价格也不贵 几百块钱好几套主题随便使用不限制域名数量, 和其他主题作者 ...

最新文章

  1. 曝iOS存在缺陷 黑客可强制iPhone拨打收费电话
  2. 3分钟了解带参数的main函数
  3. OpenShift 4 - 用 Quay Operator 安装 Quay 环境(4.10 修正)
  4. PHP+MySQL民宿酒店管理系统源码 财务管理 设备管理 报表中心等
  5. 为什么你要用卡片笔记法?
  6. (一)C++游戏开发-本地存储-介绍
  7. 杠杆炒股为什么会被强制平仓?
  8. C/C++基础讲解(二十六)之数值计算与趣味数学篇(打鱼还是晒网与怎样存钱以获取最大利息)
  9. 21版本FL Studio水果音乐制作软件下载
  10. (翻译)所见即所得(WYSIWYG)
  11. mdk工程的批量操作文件
  12. ATK-LORA 无线通信模块
  13. 极限题型一:求函数极限常见题型
  14. Windows 8 安全防御策略:avast!Free Antivirus+ZoneAlarm Free Firewall
  15. VB.NET使用S7.NET.dll连接西门子PLC200、200smart、300、400、1200
  16. AndroidStudio(IDEA)代码提示背景为白色如何去除
  17. u盘装机,UEFI模式下无法识别u盘的情况解决
  18. 【AD封装】micro USB座子,Type C座子,USB-A公头
  19. 今日头条的排名算法_3分钟看懂今日头条算法原理
  20. 天行数据 api 接口数据搜索问题 -- Python 版本

热门文章

  1. 有一种心酸,叫靠自己
  2. 北工商计算机学校,北京工商大学计算机学院
  3. python支付宝蚂蚁森林_Python数据可视化-支付宝蚂蚁森林能量收取记录
  4. 使用python输出所有汉字的拼音hàn-zì-pīn-yīn
  5. 我所认为的产品经理——从读PONY的产品笔记想到的
  6. 【AI视野·今日Robot 机器人论文速览 第二十六期】Wed, 3 Nov 2021
  7. 全能型Mac解压缩软件 MacZip2.0.1(41)中文版 原ezip
  8. openlayers绘制线段和多边形
  9. pl/sql编程----触发器
  10. Datawhale成员上榜!