|
100精币
|
加密系统 | 文本型 | | |
机器码 | 文本型 | | | | 密钥 | 文本型 | | | | operation | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | ckey_length | 整数型 | | | IP数组 | 文本型 | | 0 | string | 文本型 | | | key | 文本型 | | | keya | 文本型 | | | keyb | 文本型 | | | keyc | 文本型 | | | 时间戳key | 文本型 | | | cryptkey | 文本型 | | | key_length | 整数型 | | | string_length | 整数型 | | | result | 文本型 | | | box | 整数型 | | 0 | rndkey | 整数型 | | 256 | cryptkeya | 文本型 | | 0 | cryptkeya_length | 整数型 | | | c | 整数型 | | | i | 整数型 | | | ascii码 | 字节集 | | | ii | 整数型 | | | j | 整数型 | | | tmp | 整数型 | | | sa | 整数型 | | | stra | 整数型 | | | strj | 整数型 | | | stringA | 文本型 | | 0 | si | 整数型 | | | stringAascii码 | 字节集 | | | stringAint | 整数型 | | |
string = 机器码 + “|123”ckey_length = 4 key = 取数据摘要 (到字节集 (密钥 )) keya = 取数据摘要 (到字节集 (substr (key, 0, 16 )) )keyb = 取数据摘要 (到字节集 (substr (key, 16, 16 )) )判断 (operation = “DECODE”)keyc = substr (string, 0, ckey_length )时间戳key = 取数据摘要 (到字节集 (时间_取现行时间戳 (真)) )keyc = substr (时间戳key, 取文本长度 (时间戳key ) - ckey_length, ckey_length )cryptkey = keya + 取数据摘要 (到字节集 (keya + keyc )) key_length = 取文本长度 (cryptkey )判断 (operation = “DECODE”)string = 到文本 (编码_BASE64解码 (substr (string, ckey_length )) )string = “0000000000” + substr (取数据摘要 (到字节集 (string + keyb )), 0, 16 ) + string string_length = 取文本长度 (string)result = “”cryptkeya_length = 取文本长度 (cryptkey )计次循环首 (256, i )加入成员 (cryptkeya, substr (文本_颠倒 (cryptkey ), cryptkeya_length - i, 1 )) 加入成员 (box, i )计次循环尾 () 变量循环首 (1, 256, 1, i )ascii码 = 到字节集 (cryptkeya [到整数 (i % key_length ) + 1 ])rndkey [i ] = 到整数 (ascii码 [1 ])变量循环尾 ()变量循环首 (1, 256, 1, ii )j = (j + box [ii ] + rndkey [ii ]) % 255 + 1 tmp = box [ii ]box [ii ] = box [j ]box [j ] = tmp 变量循环尾 ()计次循环首 (string_length, si )加入成员 (stringA, substr (文本_颠倒 (string ), string_length - si, 1 )) 计次循环尾 ()变量循环首 (1, string_length, 1, sa )stra = (stra + 1 ) % 255 + 1 strj = (strj + box [stra ]) % 255 + 1 tmp = box [stra ]box [stra ] = box [strj ]box [strj ] = tmp stringAascii码 = 到字节集 (stringA [sa ])stringAint = 到整数 (stringAascii码 [1 ])result = result + 字符 (到字节 (位异或 (stringAint, box [ (box [stra ] + box [strj ]) % 255 + 1 ])) ) 变量循环尾 ()如果 (operation = “DECODE”)如果 (substr (result, 0, 10 ) = “0000000000” 且 substr (result, 10, 16 ) = substr (取数据摘要 (到字节集 (substr (result, 26 ) + keyb )), 0, 16 )) result = substr (result, 26 )result = “”result = keyc + 文本_替换 (编码_BASE64编码 (到字节集 (result )), , , , “=”, “”)返回 (result )|
substr | 文本型 | | |
str | 文本型 | | | | start | 整数型 | | | | length | 整数型 | | | | 如果 (length = 0 )length = 取文本长度 (str ) - start result = 取文本中间 (str, start + 1, length )返回 (result )
自写的,解密有时成功 有时不成功,好怪,是不是哪写的不对?
|
|