#124249 - 2004-08-01 04:42 PM
Re: KiXgolf: Vigenere Cipher - Public coding
|
Howard Bullock
KiX Supporter
   
Registered: 2000-09-15
Posts: 5809
Loc: Harrisburg, PA USA
|
Well here is my 390 stroke code that works great except it does not not follow described shifting rules. It shifts the entire table for each letter. Per the rules it passes through any character that is not in the (0-9Z-Aa-z) text string.
I liked the challenge except I think future games should allow more flexibility in the way we get to the end result. This would provide a wider range of approaches to the coded solution.
Code:
Function Vigenere($a,$b, optional $c)
Dim $d,$L,$p,$,$r,$s,$T[62],$x,$z
for $=0 to 25
$s = chr($+65) + $s + chr($+97)
next
$s = "0123456789" + $s
for $z=1 to len($a)
$L=substr($a,$z,1)
$p=instr($s,$L)
if $p
for $x=0 to 61
$=($x+2*$z) mod 62 + 1
$T[$x]=Substr($s,$)+Left($s,$-1)
next
do
$d=$d mod len($b) + 1
$=instr($s,substr($b,$d,1))
until $
$=$T[$]
$L=iif($c,substr($s,instr($,$L),1),substr($,$p,1))
endif
$r=$r+$L
next
$Vigenere = $r
EndFunction
My Tables:
Code:
0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz
0 23456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz01
1 3456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz012
2 456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123
3 56789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz01234
4 6789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz012345
5 789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456
6 89ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz01234567
7 9ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz012345678
8 ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789
9 YXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789Z
Z XWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZY
Y WVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYX
X VUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXW
W UTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWV
V TSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVU
U SRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUT
T RQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTS
S QPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSR
R PONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQ
Q ONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQP
P NMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPO
O MLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPON
N LKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONM
M KJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONML
L JIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLK
K IHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJ
J HGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJI
I GFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIH
H FEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHG
G EDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGF
F DCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFE
E CBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFED
D BAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDC
C Aabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCB
B abcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBA
A bcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAa
a cdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAab
b defghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabc
c efghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcd
d fghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcde
e ghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdef
f hijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefg
g ijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefgh
h jklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghi
i klmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghij
j lmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijk
k mnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijkl
l nopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklm
m opqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmn
n pqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmno
o qrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnop
p rstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopq
q stuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqr
r tuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrs
s uvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrst
t vwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstu
u wxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuv
v xyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvw
w yz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwx
x z0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxy
y 0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz
z 123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0
0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz
0 456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123
1 56789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz01234
2 6789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz012345
3 789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456
4 89ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz01234567
5 9ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz012345678
6 ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789
7 YXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789Z
8 XWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZY
9 WVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYX
Z VUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXW
Y UTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWV
X TSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVU
W SRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUT
V RQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTS
U QPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSR
T PONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQ
S ONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQP
R NMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPO
Q MLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPON
P LKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONM
O KJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONML
N JIHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLK
M IHGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJ
L HGFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJI
K GFEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIH
J FEDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHG
I EDCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGF
H DCBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFE
G CBAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFED
F BAabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDC
E Aabcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCB
D abcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBA
C bcdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAa
B cdefghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAab
A defghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabc
a efghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcd
b fghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcde
c ghijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdef
d hijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefg
e ijklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefgh
f jklmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghi
g klmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghij
h lmnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijk
i mnopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijkl
j nopqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklm
k opqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmn
l pqrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmno
m qrstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnop
n rstuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopq
o stuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqr
p tuvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrs
q uvwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrst
r vwxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstu
s wxyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuv
t xyz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvw
u yz0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwx
v z0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxy
w 0123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz
x 123456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz0
y 23456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz01
z 3456789ZYXWVUTSRQPONMLKJIHGFEDCBAabcdefghijklmnopqrstuvwxyz012
and so on...
|
|
Top
|
|
|
|
#124250 - 2004-08-01 05:03 PM
Re: KiXgolf: Vigenere Cipher - Public coding
|
Lonkero
KiX Master Guru
   
Registered: 2001-06-05
Posts: 22346
Loc: OK
|
k, my 388 with the wrong table (0-9,A-Z,z-a) and added shift instead of subtract comes here:
function vigenere($t,$a,optional $_)
dim $,$w,$p,$k,$l,$z
for $=1 to 256
if $>47&$<58|($>64&$<91)|($>96 & $<123 & $t+$a<>ucase($t+$a))
$l=$l+chr($)
else
$a=join(split($a,chr($)),'')
endif
next
for $k=1 to len($t)
$z=$z+$a
$=substr($t,$k,1)
$w= ($=' ') +$w-$w*instr('!.?',$)
$p=instr($l,$)
if $p
$=len($l)
$=substr($l,1+($+($p-1+(1-2*$_)*($w+instr($l,substr($z,$k,1)))) mod $) mod $,1)
endif
$vigenere=$vigenere+$
next
endfunction
the correct code has to wait.
I messed something up in it and have no time to fix now.
Edited by Lonkero (2004-08-01 05:16 PM)
_________________________
!download KiXnet
|
|
Top
|
|
|
|
#124252 - 2004-08-01 06:28 PM
Re: KiXgolf: Vigenere Cipher - Public coding
|
maciep
Korg Regular
   
Registered: 2002-06-14
Posts: 947
Loc: Pittsburgh
|
Here's mine. The table and shifting should be right.
Code:
function vigenere($t,$k,optional $d) dim $j,$r,$,$p,$o,$m,$y for $j = 65 to 90 $ = chr($j)+$+chr($j+32) next $p = "0123456789"+$ $m = 62 - (ucase($t+$k)=$t+$k)*26 for $j = 1 to len($t) do $ = left($k,1) $k = substr($k,2)+$ $ = instr($p,$) until $ $y = substr($t,$j,1) if instr(".!? ",$y) $o = ($y=" ")*($o+1) endif $r = instr($p,$y) $vigenere = $vigenere + iif($r,substr($p, (iif($d,$m-$,$)+$r+o-1) mod $m+1,1),$y) next endfunction
_________________________
Eric
|
|
Top
|
|
|
|
#124253 - 2004-08-01 07:19 PM
Re: KiXgolf: Vigenere Cipher - Public coding
|
Lonkero
KiX Master Guru
   
Registered: 2001-06-05
Posts: 22346
Loc: OK
|
oh, then this works too:
KiXGolf Score = 364
Code:
function vigenere($t,$k,optional $d)
dim $j,$r,$,$p,$o,$m,$y
for $j = 65 to 90
$ = chr($j)+$+chr($j+32)
next
$p = "0123456789"+$
$m = 62 - (ucase($t+$k)=$t+$k)*26
for $j = 1 to len($t)
do
$ = left($k,1)
$k = substr($k,2)+$
$ = instr($p,$)
until $
$y = substr($t,$j,1)
$o = $o+($y=" ")-$o*instr(".!? ",$y)
$r = instr($p,$y)
$vigenere = $vigenere + iif($r,substr($p, (iif($d,$m-$,$)+$r+o-1) mod $m+1,1),$y)
next
endfunction
tester says 7 right though...
Edited by Lonkero (2004-08-01 07:59 PM)
_________________________
!download KiXnet
|
|
Top
|
|
|
|
#124259 - 2004-08-01 08:30 PM
Re: KiXgolf: Vigenere Cipher - Public coding
|
Howard Bullock
KiX Supporter
   
Registered: 2000-09-15
Posts: 5809
Loc: Harrisburg, PA USA
|
Are we three the only ones that even gave this shot?
|
|
Top
|
|
|
|
#124261 - 2004-08-01 08:38 PM
Re: KiXgolf: Vigenere Cipher - Public coding
|
Lonkero
KiX Master Guru
   
Registered: 2001-06-05
Posts: 22346
Loc: OK
|
so, coming back with 365 Code:
function vigenere($t,$k,optional $d) dim $j,$r,$,$p,$o,$m,$y for $j = 65 to 90 $ = chr($j)+$+chr($j+32) next $p = "0123456789"+$ $m = 62 - (ucase($t+$k)=$t+$k)*26 for $j = 1 to len($t) do $ = left($k,1) $k = substr($k,2)+$ $ = instr($p,$) until $ $y = substr($t,$j,1) $o = $o+($y=" ") -$o*(0<instr('!.?',$y)) $r = instr($p,$y) $vigenere = $vigenere+iif($r,substr($p, (iif($d,$m-$,$)+$r+o-1) mod $m+1,1),$y) next endfunction
_________________________
!download KiXnet
|
|
Top
|
|
|
|
#124264 - 2004-08-02 04:42 AM
Re: KiXgolf: Vigenere Cipher - Public coding
|
Howard Bullock
KiX Supporter
   
Registered: 2000-09-15
Posts: 5809
Loc: Harrisburg, PA USA
|
Jens, can I get a ruling on my methodology of shifting the entire table 2 characters for each character of the input string? Does this offer the required additional complexity which you originally envisioned? Is it acceptable?
Note: the encrypted text does not match that you manually calculated in the test script. For this test only the "Cipher" text in the test script was changed to an empty string as it was in the original test script.
If yes then:
Code:
Function Vigenere($a,$b, optional $c)
Dim $L,$p,$,$s,$z
for $=65 to 90
$s = chr($) + $s + chr($+32)
next
$s = "0123456789" + $s
for $z=1 to len($a)
$L=substr($a,$z,1)
$p=instr($s,$L)
if $p
do
$ = left($b,1)
$b = substr($b,2)+$
$ = instr($s,$)
until $
$=($+2*$z) mod 62 + 1
$=Substr($s,$)+Left($s,$-1)
$L=iif($c,substr($s,instr($,$L),1),substr($,$p,1))
endif
$Vigenere=$Vigenere+$L
next
EndFunction
Code:
KiXtart
KiXtart Version = 4.22
KiXforms Version =
KiXGolf Script = kixgolf_vigenere.kix
Computer
OS = Windows 2000 Professional
CPU = Intel Pentium III
Speed = 848 MHz
Memory = 512 MB
KiXGolf Scoring Engine
Scoring Engine = 3.0.3
KiXtart Golf Score
Tournament = KiXtart Golf: Vigenere Cipher
Valid Cipher Ops = 11 (100%)
Processing Start = 2004/08/01 22:21:55.034
Processing End = 2004/08/01 22:21:55.154
Duration = 0000/00/00 00:00:00.119
KiXGolf Score = 344
Thank you for participating in KiXtart Golf!
Outputs:
rxE5rzW
KIXGOLF
rxE5rzW 7WlO7UG
KIXGOLF KIXGOLF
rxE5rzW. 9UnM9SE
KIXGOLF. KIXGOLF
rxE5rzW p1rz9bUCS7
KIXGOLF TOURNAMENT
~!#$%^&*()-+?
~!#$%^&*()-+?
rEEEnjA FWQRdlGrZU
KiXgolf Tournament
pBMEqE lb 8pwow2ex SvL 2FNW Mb lo0J EiB zfsji80t ZWA TSPJ7C SYfDLgkUk ne m uZmrx R3 6Nv JUHFGC, dAr tg2Cpq s0 W6W 5QC Z LeqDK.
Blaise de Vigenere was born in 1523 and received the normal education of a noble of his period, ven though he was not a noble.
qdw VojLxABk 3kWI4M 6mF5l XhSi5jsCEkbN iY D wF837t6ZlTB XK i MDCHac IfzC7 V6ZwkUrc NIWM e DDnHkB6
The Vigenere cipher basic construction is a combination of a Caesar shift combined with a keyword
eimquy26Z4
1234567890
eimquy26Z4
abcdefghij
3ECpropc!
Finished!
|
|
Top
|
|
|
|
#124265 - 2004-08-02 12:46 PM
Re: KiXgolf: Vigenere Cipher - Public coding
|
Lonkero
KiX Master Guru
   
Registered: 2001-06-05
Posts: 22346
Loc: OK
|
maciep, sorry but your code is the loosest  and yet, the finest.
Code:
function vigenere($t,$k,optional $d) dim $j,$r,$,$p,$o,$y for $j = 65 to 90 $ = chr($j)+$+chr($j+32) next $p = "0123456789"+$ for $j = 1 to len($t) do $ = left($k,1) $k = substr($k,2)+$ $y = instr($p,$) until $y $ = substr($t,$j,1) $o = $o+($=" ") -$o*(0<instr('!.?',$)) $r = instr($p,$) if $r $ = 62 - (ucase($t+$k)=$t+$k)*26 $=substr($p, (iif($d,$-$y,$y)+$r+o-1) mod $+1,1) endif $vigenere = $vigenere + $ next endfunction
makes it 360.
_________________________
!download KiXnet
|
|
Top
|
|
|
|
Moderator: Arend_, Allen, Jochen, Radimus, Glenn Barnas, ShaneEP, Ruud van Velsen, Mart
|
1 registered
(Allen)
and 1198 anonymous users online.
|
|
|