javascript 实现sm3哈希算法

本文分享了如何使用JavaScript实现SM3哈希算法,提供了三个JS文件:sm_utils.js, sm_sm3.js和SM3Sign.js,可以直接复制使用。" 113441449,10548507,MySQL持久化统计信息与刷新策略,"['数据库理论', 'MySQL', '数据管理']
摘要由CSDN通过智能技术生成

javascript 实现sm3哈希算法

 

各位看官直接上code,随copy随食用。

分别建三个js文件:

  • sm_utils.js

var utils = exports

utils.strToBytes = strToBytes

function strToBytes(s) {
  var ch, st, re = [];
  for (var i = 0; i < s.length; i++ ) {
    ch = s.charCodeAt(i);  // get char
    st = [];                 // set up "stack"
    do {
      st.push( ch & 0xFF );  // push byte to stack
      ch = ch >> 8;          // shift value down by 1 byte
    }
    while ( ch );
    re = re.concat( st.reverse() );
  }
  return re;
}
  • sm_sm3.js
/**
 * SM3 hash algorithm
 */

var utils = require('./sm_utils');

/**
 * SM3 Hasher
 */
function SM3() {
  if (!(this instanceof SM3)) {
    return new SM3();
  }

  this.reg = new Array(8);
  this.chunk = [];
  this.size = 0;

  this.reset();
}
module.exports = SM3;


SM3.prototype.reset = function() {
  this.reg[0] = 0x7380166f;
  this.reg[1] = 0x4914b2b9;
  this.reg[2] = 0x172442d7;
  this.reg[3] = 0xda8a0600;
  this.reg[4] = 0xa96f30bc;
  this.reg[5] = 0x163138aa;
  this.reg[6] = 0xe38dee4d;
  this.reg[7] = 0xb0fb0e4e;
  this.chunk = [];
  this.size = 0;
}

/**
 * Stream hashin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值