12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- //TID号加密解密算法描述
- //466fe489d=>70537421
- const szKey3 = [0x35, 0x41, 0x32, 0x42, 0x33, 0x43, 0x36, 0x44, 0x39, 0x45,
- 0x38, 0x46, 0x37, 0x34, 0x31, 0x30
- ];
- //解密 ,参数16进制
- const encrypt = (number) => {
- console.log(number)
- number = number.toUpperCase()
- console.log(number)
- let out_number = '';
- if (!number) return;
- let len = number.length;
- console.log(len)
- if (len > 16) return;
- for (let i = 0; i < len; i++) {
- for (let j = 0; j < 16; j++) {
- if (number.charAt(i).charCodeAt() == szKey3[j]) //字符转ascii码
- out_number += String.fromCharCode(0x2A + j);
- else
- continue;
- }
- }
- console.log(out_number)
- return out_number
- }
- // ArrayBuffer转16进度字符串示例
- const ab2hex = (buffer) => {
- var hexArr = Array.prototype.map.call(
- new Uint8Array(buffer),
- function (bit) {
- return ('00' + bit.toString(16)).slice(-2)
- }
- )
- return hexArr.join('');
- }
- //字符串平均切割成数组
- const strAverage2Arr = (str, no) => {
- let arr = [];
- for (let i = 0; i < str.length; i += no) {
- arr.push(str.slice(i, i + 2));
- }
- return arr;
- }
- //数组的每个元素加前缀
- const addFlagBeforeArr = (arr) => {
- return Array.prototype.map.call(arr, function (value) {
- return `0x${value}`;
- })
- }
- //字符转ArrayBuffer
- const hexStringToArrayBuffer = (str) => {
- // 将16进制转化为ArrayBuffer
- return new Uint8Array(str.match(/[\da-f]{2}/gi).map(function (h) {
- return parseInt(h, 16)
- })).buffer
- }
- const CRC = (dataBuf) =>{
- var temp = 0;
- var crc = 0xffff;
- for (var i = 0; i < dataBuf.length; i++) {
- crc ^= parseInt(dataBuf[i].toString());
- for (var j = 0; j < 8; j++) {
- temp = 1 & crc;
- crc >>= 1;
- if (temp == 1) {
- crc ^= 0xa001;
- }
- }
- }
- crc ^= 0xffff;
- crc = ('0000' + crc.toString(16)).substr(-4);
- return crc;
- }
- module.exports = {
- encrypt: encrypt,
- ab2hex: ab2hex,
- strAverage2Arr: strAverage2Arr,
- addFlagBeforeArr: addFlagBeforeArr,
- hexStringToArrayBuffer: hexStringToArrayBuffer,
- CRC:CRC
- }
|