|
发表于 2022-9-5 13:09:02
|
显示全部楼层
内蒙古自治区呼和浩特市
不会c#,一边百d一边写的,能取到结果,没办法测试对不对,自行测试,用了精易模块和e2ee支持库,自行论坛搜索下载
GetUniqueCode (时间_取现行时间戳 ()) |
GetUniqueCode | 文本型 | | |
timeStamp | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | j | 整数型 | | | code_string | 文本型 | | | str | 文本型 | | | i | 整数型 | | | charArray | 文本型 | | 0 | keyB | 字节集 | | | j2 | 整数型 | | | dataB | 字节集 | | | Encrypt | 加解密对象 | | | hmacBytes | 字节集 | | | i2 | 整数型 | | | uniqueCode | 文本型 | | |
j = 到整数 (timeStamp )code_string = “ZFCDGHQABNOPIEJRSTUVMWXKLY”str = “” 判断循环首 (j > 0 ) i = j % 26  j = (j - i ) ÷ 26 文本_逐字分割 (code_string, charArray ) str = str + charArray [i + 1 ] 判断循环尾 ()keyB = 编码_Ansi到Utf8 (str )j2 = 到整数 (timeStamp ) ÷ 30000 dataB = 取空白字节集 (8 ) 变量循环首 (8, 1, -1, i ) dataB [i ] = 位与 (255, j2 ) j2 = 右移 (j2, 8 ) 变量循环尾 ()调试输出 (dataB, keyB )hmacBytes = 编码_BASE64解码 (Encrypt. 取HMAC值 ( #哈希算法_SHA1, dataB, keyB, #文本内容类型_Base64 ), )i2 = 位与 (hmacBytes [20 ], 15 ) + 1 uniqueCode = 文本_自动补零 (到文本 (到整数 (位或 (位或 (位或 (位与 (hmacBytes [i2 + 3 ], 255 ), 左移 (位与 (hmacBytes [i2 ], 127 ), 24 )), 左移 (位与 (hmacBytes [i2 + 1 ], 255 ), 16 )), 左移 (位与 (hmacBytes [i2 + 2 ], 255 ), 8 )) % 1000000 )), 6 )调试输出 (uniqueCode )返回 (uniqueCode ) |
|