微信小程序中如何使用C源代码,或者如何将这个算法函数转成JS可执行的代码?在线等
test.c源代码如下:
//========================================采用TEA算法,只有滚动密码功能========================================================================================================================
#define mSecDataTempPd 0x5aa555aa
const DWORD coSecDataTempPd = (mSecDataTempPd ^ 0x9e3779b9);
const DWORD coKeyTempPd[] = {0x126f2e1b,0xd1ef3da9,0xa7469115,0x6d83ea82};
/*---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
pData_fGet1TimePd 管理密码(输入),6-12位,无符号字符型数组,数组长度12字节,二机制,比如,密码123456,则输入为{0x01,0x02,0x03,0x04,0x05,0x06,0xff,0xff,0xff,0xff,0xff,0xff}
dTime_fGet1TimePd 时间,以1970年1月1日0点0分0秒到当前时间,所经历的秒钟数,无符号long型变量
pPd_fGet1TimePd 临时密码,输出,无符号字符型数组,长度8字节,二进制。
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
void fGet1TimePd(BYTE* pData_fGet1TimePd,DWORD dTime_fGet1TimePd,BYTE* pPd_fGet1TimePd)
{
DWORD dData_fGet1TimePd[2];
BYTE* pTemp_fGet1TimePd = (BYTE*)dData_fGet1TimePd;
BYTE bTemp_fGet1TimePd;
dTime_fGet1TimePd /= _TempPdCyc_;
for(bTemp_fGet1TimePd = 0;bTemp_fGet1TimePd < 8;bTemp_fGet1TimePd ++)
{
if(bTemp_fGet1TimePd < 6)
{
pTemp_fGet1TimePd[bTemp_fGet1TimePd] = ((pData_fGet1TimePd[bTemp_fGet1TimePd * 2] << 4) & 0xf0) | (pData_fGet1TimePd[bTemp_fGet1TimePd * 2 + 1] & 0x0f);
}
else
{
pTemp_fGet1TimePd[bTemp_fGet1TimePd] = 0;
}
if(bTemp_fGet1TimePd > 3)
{
pTemp_fGet1TimePd[bTemp_fGet1TimePd] ^= (dTime_fGet1TimePd >> ((7 - bTemp_fGet1TimePd) * 8));
}
}
fEncryptTea(&dData_fGet1TimePd[0],&dData_fGet1TimePd[1]);
for(bTemp_fGet1TimePd = 0;bTemp_fGet1TimePd < 8;bTemp_fGet1TimePd ++)
{
pPd_fGet1TimePd[bTemp_fGet1TimePd] = (((pTemp_fGet1TimePd[bTemp_fGet1TimePd] >> 4) & 0x0f) ^ (pTemp_fGet1TimePd[bTemp_fGet1TimePd] & 0x0f)) % 10;
}
}
void fEncryptTea(DWORD *fData1_fEncryptTea,DWORD *fData2_fEncryptTea)
{
DWORD dTemp1_fEncryptTea = *fData1_fEncryptTea;
DWORD dTemp2_fEncryptTea = *fData2_fEncryptTea;
DWORD dSum_fEncryptTea = 0;
DWORD dDelta_fEncryptTea = coSecDataTempPd ^ mSecDataTempPd;
BYTE bTemp_fEncryptTea;
for (bTemp_fEncryptTea = 0;bTemp_fEncryptTea < 8;bTemp_fEncryptTea ++) //8轮运算(需要对应下面的解密核心函数的轮数一样)
{
dSum_fEncryptTea += dDelta_fEncryptTea;
dTemp1_fEncryptTea += ((dTemp2_fEncryptTea << 4) + coKeyTempPd[0]) ^ (dTemp2_fEncryptTea + dSum_fEncryptTea) ^ ((dTemp2_fEncryptTea >> 5) + coKeyTempPd[1]);
dTemp2_fEncryptTea += ((dTemp1_fEncryptTea << 4) + coKeyTempPd[2]) ^ (dTemp1_fEncryptTea + dSum_fEncryptTea) ^ ((dTemp1_fEncryptTea >> 5) + coKeyTempPd[3]);
}
fData1_fEncryptTea[0] = dTemp1_fEncryptTea;
fData2_fEncryptTea[0] = dTemp2_fEncryptTea;
}
test.h源代码如下:
#ifndef _tea_h_
#define _tea_h_
#define _TempPdCyc_ (15 * 60L) //(本地)动态密码周期参数,每次时间变化超过该周期,则动态密码更换一个,该参数以秒钟为单位,(15x60)表示900s(15分钟)。
void fEncryptTea(DWORD *fData1_fEncryptTea,DWORD *fData2_fEncryptTea);
void fDecryptTea(DWORD *fData1_fDecryptTea,DWORD *fData2_fDecryptTea);
#endif
以上就是全部的计算算法代码,请大侠转成在微信小程序中可以使用的语言,在线等,分全送了。
相关推荐
原 webrtc,vad C/C++,转成 JS,微信小程序使用
原 webrtc,vad C/C++,转成 JS,微信小程序使用
使用JavaScript在微信小程序中调用C/C++代码
本文将介绍如何在微信小程序中调用C/C++代码,并提供相应的源代码示例。通过借助云开发的能力,我们可以将C/C++代码编译成可执行文件,并在云函数中调用该文件来实现与C/C++代码的交互。我们可以将C/C++代码编译成可执行文件,并在云函数中调用该可执行文件来实现与C/C++代码的交互。首先,我们需要创建一个云函数来托管我们的C/C++代码。最后,我们可以在微信小程序中调用云函数来执行C/C++代码。以下是一个简单的示例,展示了如何在微信小程序中调用C/C++代码。的共享库文件,用于在云函数中调用。
微信小程序 实例汇总 完整项目源代码
微信小程序 实例汇总 完整项目源代码
微信小程序Emoji表情源代码
首先需要定义表情的表示方式,然后以此组装出信息的字符串 然后显示的关键是实现一个字符串转数组的函数 此函数的关键是,根据表情的表示方式,写一个匹配正则表达式
微信小程序使用第三方库Underscore.js步骤详解
前言 Underscore.js是一个很精干的库,压缩后只有4KB。Underscore 提供了100多个函数,包括常用的:map、filter、invoke — 当然还有更多专业的辅助函数,如:函数绑定、JavaScript 模板功能、创建快速索引、强类型相等测试等等。弥补了标准库的不足,大大方便了JavaScript的编程。 微信小程序无法直接使用require( ‘underscore.js’ )进行调用。 微信小程序模块化机制 微信小程序运行环境支持CommoJS模块化,通过module.exports暴露对象,通过require来获取对象。 微信小程序Quick Start util


