Icke Bitvis XOR nyfikenhet för kryptering (3 / 7 steg)
Steg 3: kod för XOR algoritmen i bas [X]
Jag tycker att jag inte kan räkna ut alla matten i huvudet tillräckligt snabbt så jag bestämde mig att byta till datorn. Jag är en LINUX kille så åkte jag direkt till AWK så fort jag kunde.
Jag skrev ett kort manus för att åtminstone testa teorin på en grunduppsättning [10]. Min ursprungliga pappersversionen verkar ha vissa frågor men till slut fick jag en sanning bordlägger som jag kan leva med.
1) Jag skapade en 10-raders fil, ett nummer på varje rad som börjar med 0.
2) Jag skrev en rutin för att indexera dessa siffror, accepterar indata, köra algoritmen och spotta ut resultatet.
----
#! / bin/bash
# baseX-xor.sh
ECHO -e $1 $2 | awk "BEGIN {
CNT = 1
medan (getline < "wheel.txt" > 0)
{
n [CNT] = $0; Jag [0] = CNT; CNT ++
}
mylen = CNT-1; mymax = CNT-2
Close("Wheel.txt")
}
{
Pos1 = jag [$1] + 0; POS2 = jag [$2] + 0
IF(Pos1==0) pos1 = 1
IF(POS2==0) pos2 = 1
resultat = mymax-pos1-pos2
om (resultatet < = 0) resultatet = resultatet + Charlotta
om (resultatet < = 0) resultatet = resultatet + Charlotta
om (resultatet < = 0) resultatet = resultatet + Charlotta
skriva ut n [resultat]
}'
----
Jag sprang en kommandorad script för att göra en sanning bordlägger matris:
----
för X i 0 1 2 3 4 5 6 7 8 9
göra
för Y i 0 1 2 3 4 5 6 7 8 9
göra
O='./baseX-XOR.sh $X $Y "
eko -n "$O"
gjort
ECHO
gjort
----
0 1 2 3 4 5 6 7 8 9
0 6 5 4 3 2 1 0 9 8 7
1 5 4 3 2 1 0 9 8 7 6
2 4 3 2 1 0 9 8 7 6 5
3 3 2 1 0 9 8 7 6 5 4
4 2 1 0 9 8 7 6 5 4 3
5 1 0 9 8 7 6 5 4 3 2
6 0 9 8 7 6 5 4 3 2 1
7 9 8 7 6 5 4 3 2 1 0
8 8 7 6 5 4 3 2 1 0 9
9 7 6 5 4 3 2 1 0 9 8