|
发表于 2020-11-22 18:19:15
|
显示全部楼层
陕西省渭南市
算法一窍不通.前边的转换修改了一下.
易语言的整数运算还是很快的.不一定非要用汇编
变量名 | 类 型 | 静态 | 数组 | 备 注 | 内容 | 字节集 | | | 数组1 | 字节型 | | 0 | 文本数组 | 文本型 | | 0 |
内容 = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }字节集到字节数组 (内容, 数组1 )调试输出 (数组1 )调试输出 (字节数组到字节集 (数组1 )) 文本数组 = { “1”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9” }调试输出 (字符数组到文本 (文本数组 )) 返回 (0 ) 变量名 | 类 型 | 静态 | 数组 | 备 注 | 计数器 | 整数型 | | | 内存句柄 | 整数型 | | | 指针 | 整数型 | | | 大小 | 整数型 | | | 返回值 | 字节集 | | |
大小 = 取数组成员数 (参_字节数组 )内存句柄 = 申请内存 (大小, )计次循环首 (大小, 计数器 )写到内存 (参_字节数组 [计数器 ], 内存句柄 + 指针, )指针 = 指针 + 1 计次循环尾 ()返回值 = 指针到字节集 (内存句柄, 大小 )释放内存 (内存句柄 )返回 (返回值 )|
字节集到字节数组 | | | |
参_字节集 | 字节集 | | | | 参_字节数组 | 字节型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 计数器 | 整数型 | | | 大小 | 整数型 | | | 指针 | 整数型 | | |
指针 = 取变量数据地址 (参_字节集 )大小 = 取字节集长度 (参_字节集 )重定义数组 (参_字节数组, 假, 大小 )计次循环首 (大小, 计数器 )参_字节数组 [计数器 ] = 指针到字节 (指针 + 计数器 - 1 )计次循环尾 ()变量名 | 类 型 | 静态 | 数组 | 备 注 | 计数器 | 整数型 | | | 大小 | 整数型 | | | 内存句柄 | 整数型 | | | 指针 | 整数型 | | | 返回值 | 文本型 | | |
大小 = 取数组成员数 (参_文本数组 )内存句柄 = 申请内存 (大小 + 1, )计次循环首 (大小, 计数器 )写到内存 (参_文本数组 [计数器 ], 内存句柄 + 指针, )指针 = 指针 + 1 计次循环尾 ()返回值 = 指针到文本 (内存句柄 )释放内存 (内存句柄 )返回 (返回值 )|
uniteBytes | 字节型 | | |
参数1 | 字节型 | | | | 参数2 | 字节型 | | | | 返回 (到字节 (位异或 (左移 (字节到整数 (参数1 ), 4 ), 字节到整数 (参数2 )) )) 如果 (参_字节 ≤ 57 )返回 (参_字节 - 48 )返回 (参_字节 - 55 )|
HexString2Bytes | 字节集 | | |
arg7 | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | v2 | 字节型 | | 0 | v3 | 整数型 | | | v4 | 字节型 | | 0 | v1 | 整数型 | | |
v3 = 取文本长度 (arg7 )重定义数组 (v2, 假, v3 ÷ 2 )字节集到字节数组 (到字节集 (arg7 ), v4 )判断循环首 (v1 < v3 ÷ 2 )v2 [v1 + 1 ] = uniteBytes (v4 [v1 × 2 + 1 ], v4 [v1 × 2 + 2 ])v1 = v1 + 1 判断循环尾 ()返回 (字节数组到字节集 (v2 )) 变量名 | 类 型 | 静态 | 数组 | 备 注 | v7 | 字节集 | | | v10 | 整数型 | | | v0 | 字节型 | | 0 | v5 | 字节型 | | 256 | v2 | 整数型 | | | v3 | 整数型 | | | v4 | 整数型 | | | v6 | 字节型 | | |
v10 = 256 字节集到字节数组 (到字节集 (arg11 ), v0 )判断循环首 (v2 < v10 )v5 [v2 + 1 ] = 到字节 (v2 )v2 = v2 + 1 判断循环尾 () 判断 (取数组成员数 (v0 ) ≠ 0 )v2 = 0 返回 (v7 ) 判断循环首 (v2 < v10 )v4 = 位与 (位与 (v0 [v3 + 1 ], 255 ) + 位与 (v5 [v2 + 1 ], 255 ) + v4, 255 )v6 = v5 [v2 + 1 ]v5 [v2 + 1 ] = v5 [v4 + 1 ]v5 [v4 + 1 ] = v6 v3 = (v3 + 1 ) % 取数组成员数 (v0 )v2 = v2 + 1 判断循环尾 () 返回 (字节数组到字节集 (v5 )) |
RC4Base | 字节集 | | |
arg9 | 字节集 | | | | arg10 | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | v4 | 整数型 | | | v6 | 整数型 | | | v1 | 字节型 | | 0 | v2 | 字节型 | | 0 | v0 | 整数型 | | | v3 | 字节型 | | | 字节集到字节数组 (initKey (arg10 ), v1 )重定义数组 (v2, 假, 取字节集长度 (arg9 )) 判断循环首 (v0 < 取字节集长度 (arg9 )) v4 = 位与 (v4 + 1, 255 )v6 = 位与 (位与 (v1 [v4 + 1 ], 255 ) + v6, 255 )v3 = v1 [v4 + 1 ]v1 [v4 + 1 ] = v1 [v6 + 1 ]v1 [v6 + 1 ] = v3 v2 [v0 + 1 ] = 到字节 (位异或 (取字节集数据 (arg9, 1, v0 + 1 ), v1 [位与 (位与 (v1 [v4 + 1 ], 255 ) + 位与 (v1 [v6 + 1 ], 255 ), 255 ) + 1 ])) v0 = v0 + 1 判断循环尾 ()返回 (字节数组到字节集 (v2 )) |
RC4_Encode | 文本型 | | |
arg10 | 文本型 | | | | arg11 | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | v9 | 文本型 | | | v0 | 字节型 | | 0 | v3 | 文本型 | | 0 | v5 | 整数型 | | | v8 | 文本型 | | 0 | v4 | 整数型 | | | v7 | 整数型 | | | v1 | 整数型 | | | v6 | 整数型 | | | 字节集到字节数组 (RC4Base (到字节集 (arg10 ), arg11 ), v0 )v3 = { “0”, “1”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9”, “A”, “B”, “C”, “D”, “E”, “F” }v5 = 取数组成员数 (v0 )重定义数组 (v8, 假, v5 × 2 )判断循环首 (v4 < v5 )v1 = v0 [v4 + 1 ]v6 = v7 + 1 v8 [v7 + 1 ] = v3 [位与 (右移 (v1, 4 ), 15 ) + 1 ]v7 = v6 + 1 v8 [v6 + 1 ] = v3 [位与 (v1, 15 ) + 1 ]v4 = v4 + 1 判断循环尾 () v9 = 字符数组到文本 (v8 )返回 (v9 ) |
RC4_Decode | 文本型 | | |
arg4 | 文本型 | | | | arg5 | 文本型 | | | |
v1 = 到文本 (RC4Base (HexString2Bytes (arg4 ), arg5 )) 返回 (v1 ) 置入代码 ({ 139, 69, 8, 139, 0, 201, 194, 4, 0 })返回 (0 )
|
|