aboutsummaryrefslogtreecommitdiff
path: root/tools/captcha.sh
diff options
context:
space:
mode:
authorBadlop <badlop@process-one.net>2009-11-23 12:43:15 +0000
committerBadlop <badlop@process-one.net>2009-11-23 12:43:15 +0000
commit7fd3d67ff30e8f23c09db13b82121990e58ba7f5 (patch)
tree867cafe25e15f18483091aec3748a60e78ca926b /tools/captcha.sh
parentOption to define custom HTTP headers in mod_http_fileserver (EJAB-612) (diff)
Change captcha.sh to not depend on bash (thanks to Konstantin Khomoutov)(EJAB-1105)
SVN Revision: 2749
Diffstat (limited to '')
-rwxr-xr-xtools/captcha.sh87
1 files changed, 61 insertions, 26 deletions
diff --git a/tools/captcha.sh b/tools/captcha.sh
index d68edfa03..560a048ad 100755
--- a/tools/captcha.sh
+++ b/tools/captcha.sh
@@ -1,35 +1,70 @@
-#!/bin/bash
+#!/bin/sh
INPUT=$1
-WAVE1_AMPLITUDE=$((2 + $RANDOM % 5))
-WAVE1_LENGTH=$((50 + $RANDOM % 25))
-WAVE2_AMPLITUDE=$((2 + $RANDOM % 5))
-WAVE2_LENGTH=$((50 + $RANDOM % 25))
-WAVE3_AMPLITUDE=$((2 + $RANDOM % 5))
-WAVE3_LENGTH=$((50 + $RANDOM % 25))
-W1_LINE_START_Y=$((10 + $RANDOM % 40))
-W1_LINE_STOP_Y=$((10 + $RANDOM % 40))
-W2_LINE_START_Y=$((10 + $RANDOM % 40))
-W2_LINE_STOP_Y=$((10 + $RANDOM % 40))
-W3_LINE_START_Y=$((10 + $RANDOM % 40))
-W3_LINE_STOP_Y=$((10 + $RANDOM % 40))
+if test -n ${BASH_VERSION:-''} ; then
+ get_random ()
+ {
+ R=$RANDOM
+ }
+else
+ for n in `od -A n -t u2 -N 48 /dev/urandom`; do RL="$RL$n "; done
+ get_random ()
+ {
+ R=${RL%% *}
+ RL=${RL#* }
+ }
+fi
-B1_LINE_START_Y=$(($RANDOM % 40))
-B1_LINE_STOP_Y=$(($RANDOM % 40))
-B2_LINE_START_Y=$(($RANDOM % 40))
-B2_LINE_STOP_Y=$(($RANDOM % 40))
-#B3_LINE_START_Y=$(($RANDOM % 40))
-#B3_LINE_STOP_Y=$(($RANDOM % 40))
+get_random
+WAVE1_AMPLITUDE=$((2 + $R % 5))
+get_random
+WAVE1_LENGTH=$((50 + $R % 25))
+get_random
+WAVE2_AMPLITUDE=$((2 + $R % 5))
+get_random
+WAVE2_LENGTH=$((50 + $R % 25))
+get_random
+WAVE3_AMPLITUDE=$((2 + $R % 5))
+get_random
+WAVE3_LENGTH=$((50 + $R % 25))
+get_random
+W1_LINE_START_Y=$((10 + $R % 40))
+get_random
+W1_LINE_STOP_Y=$((10 + $R % 40))
+get_random
+W2_LINE_START_Y=$((10 + $R % 40))
+get_random
+W2_LINE_STOP_Y=$((10 + $R % 40))
+get_random
+W3_LINE_START_Y=$((10 + $R % 40))
+get_random
+W3_LINE_STOP_Y=$((10 + $R % 40))
-B1_LINE_START_X=$(($RANDOM % 20))
-B1_LINE_STOP_X=$((100 + $RANDOM % 40))
-B2_LINE_START_X=$(($RANDOM % 20))
-B2_LINE_STOP_X=$((100 + $RANDOM % 40))
-#B3_LINE_START_X=$(($RANDOM % 20))
-#B3_LINE_STOP_X=$((100 + $RANDOM % 40))
+get_random
+B1_LINE_START_Y=$(($R % 40))
+get_random
+B1_LINE_STOP_Y=$(($R % 40))
+get_random
+B2_LINE_START_Y=$(($R % 40))
+get_random
+B2_LINE_STOP_Y=$(($R % 40))
+#B3_LINE_START_Y=$(($R % 40))
+#B3_LINE_STOP_Y=$(($R % 40))
-ROLL_X=$(($RANDOM % 40))
+get_random
+B1_LINE_START_X=$(($R % 20))
+get_random
+B1_LINE_STOP_X=$((100 + $R % 40))
+get_random
+B2_LINE_START_X=$(($R % 20))
+get_random
+B2_LINE_STOP_X=$((100 + $R % 40))
+#B3_LINE_START_X=$(($R % 20))
+#B3_LINE_STOP_X=$((100 + $R % 40))
+
+get_random
+ROLL_X=$(($R % 40))
convert -size 180x60 xc:none -pointsize 40 \
\( -clone 0 -fill white \