PHP,适应于上帖简单加密后的密文
<?php <BR>//replacement来自上个版本的加密替换 <br><br> function compress_func($match) {return strlen($match[0]).$match[0]{0};} <br><br> function uncompress_func($match) {return str_repeat($match[2], $match[1]);} <br><br> function compress($str) { <BR> $i = 0; <BR> $pattern = array(); <BR> while(isset($replacement{$i})) array_push($pattern, "/".$replacement{$i++}."{2,}/"); <BR> return preg_replace_callback($pattern, "compress_func", $str); <BR> } <br><br> function uncompress($str) { <BR> return preg_replace_callback("/(d+)(w)/", "uncompress_func", $str); <BR> } <BR>?> <BR>
AWK,通用格式
#!/bin/awk <BR>function compress(str, _ARGVEND_, str_out, str_len, i, s, l) { <BR> str_out = ""; <BR> str_len = length(str); <BR> s = ""; <BR> l = 1; <BR> for(i =1; i <= str_len; i++) { <BR> if(substr(str, i, 1) == s) l++; <BR> else { <BR> if(s != "") { <BR> if(l > 1) str_out=str_out""l <BR> str_out=str_out""s; <BR> } <BR> s = substr(str, i, 1); <BR> l = 1; <BR> } <BR> } <BR> return str_out; <BR>} <BR>function uncompress(str, _ARGVEND_, str_out, str_len, i, c) { <BR> str_out = ""; <BR> str_len = length(str); <BR> for(i =1; i <= str_len; i++) { <BR> c = 0; <BR> while(substr(str, i, 1)~/[0-9]/) { <BR> c = c*10+substr(str, i, 1); <BR> i++; <BR> } <BR> if(c < 1) c = 1; <BR> while(c--) str_out = str_out""substr(str, i, 1); <BR> } <BR> return str_out;<strong style="color:transparent">本文来源gao@daima#com搞(%代@#码@网&</strong><strong>搞gaodaima代码</strong> <BR>}<BR>