function enc($data, $key, $size){ $e=""; $i=0; $k = 0; $k = (strlen($key)-1); $kp = 0; for($i=0; $i<=($size-1); $i++){ $e=$e.chr(~(ord($data[$i])^ord($key[$kp]))); $kp++; if($kp > $k) $kp=0; } return $e; } cf version with error: var e = ''; var i = 0; var k = 0; var kp = 1; k = len(key); for(i=1; i LTE size; i = i + 1) { e = chr(bitnot(asc(mid(data,i,1))^asc(mid(key,kp,1)))); kp = kp + 1; if(kp GT k) kp = 1; } #enc("foo","bar",3)# ERROR: Could not convert the value 6.963327679981099E196 to an integer because it cannot fit inside an integer. This error is happening on bitnot()