PHP, 221 Bytes (Cracked)
I hope it is difficult enough.
Regex (PCRE): 16 Bytes
^[^\s/\#6]{221}$ No space, No comments, no use of base64_decode. Have Fun.
Output
1 2 3 4 8 7 6 5 9 10 11 12 16 15 14 13 Original Code
$w=$argv[1];$s="";$r=range(1,$w**2);for($i=0;$i<$w;$i++)if($i%2)array_splice($r,$i*$w,$w,array_reverse(array_slice($r,$i*$w,$w)));foreach(($r)as$v)$s.=str_pad($v,$l=strlen(max($r))+1,"\x20",0);echo(chunk_split($s,$l*$w));