javascript实现国密sm4算法(支持微信小程序)

概述:

本人前端需要实现sm4计算的功能,最好是能做到分多次计算。
本文所写的代码在现有sm4的C++代码,反复测试对比计算过程参数,成功改造成sm4的javascript代码,并成功验证好分多次计算sm4数据

测试平台:

已经在如下环境中测试通过,其他平台(浏览器)应该也不会有问题:
1、nodejs中node.exe运行
本js脚本按照版本ES5编写代码,当然微信小程序也能用。

功能代码:

function strSm4CtxParams() {
   
   
  this.sk;
};

var FK = [0xa3b1bac6,0x56aa3350,0x677d9197,0xb27022dc];
var CK =  [  
	0x00070e15,0x1c232a31,0x383f464d,0x545b6269,  
	0x70777e85,0x8c939aa1,0xa8afb6bd,0xc4cbd2d9,  
	0xe0e7eef5,0xfc030a11,0x181f262d,0x343b4249,  
	0x50575e65,0x6c737a81,0x888f969d,0xa4abb2b9,  
	0xc0c7ced5,0xdce3eaf1,0xf8ff060d,0x141b2229,  
	0x30373e45,0x4c535a61,0x686f767d,0x848b9299,  
	0xa0a7aeb5,0xbcc3cad1,0xd8dfe6ed,0xf4fb0209,  
	0x10171e25,0x2c333a41,0x484f565d,0x646b7279  
]; 

var SboxTable = [  
	0xd6,0x90,0xe9,0xfe,0xcc,0xe1,0x3d,0xb7,0x16,0xb6,0x14,0xc2,0x28,0xfb,0x2c,0x05,  
	0x2b,0x67,0x9a,0x76,0x2a,0xbe,0x04,0xc3,0xaa,0x44,0x13,0x26,0x49,0x86,0x06,0x99,  
	0x9c,0x42,0x50,0xf4,0x91,0xef,0x98,0x7a,0x33,0x54,0x0b,0x43,0xed,0xcf,0xac,0x62,  
	0xe4,0xb3,0x1c,0xa9,0xc9,0x08,0xe8,0x95,0x80,0xdf,0x94,0xfa,0x75,0x8f,0x3f,0xa6,  
	0x47,0x07,0xa7,0xfc,0xf3,0x73,0x17,0xba,0x83,0x59,0x3c,0x19,0xe6,0x85,0x4f,0xa8,  
	0x68,0x6b,0x81,0xb2,0x71,0x64,0xda,0x8b,0xf8,0xeb,0x0f,0x4b,0x70,0x56,0x9d,0x35,  
	0x1e,0x24,0x0e,0x5e,0x63,0x58,0xd1,0xa2,0x25,0x22,0x7c,0x3b,0x01,0x21,0x78,0x87,  
	0xd4,0x00,0x46,0x57,0x9f,0xd3,0x27,0x52,0x4c,0x36,0x02,0xe7,0xa0,0xc4,0xc8,0x9e,  
	0xea,0xbf,0x8a,0xd2,0x40,0xc7,0x38,0xb5,0xa3,0xf7,0xf2,0xce,0xf9,0x61,0x15,0xa1,  
	0xe0,0xae,0x5d,0xa4,0x9b,0x34,0x1a,0x55,0xad,0x93,0x32,0x30,0xf5,0x8c,0xb1,0xe3,  
	0x1d,0xf6
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值