Anonymous user
Playfair cipher: Difference between revisions
→{{header|zkl}}: dawn of the brain dead
m (→{{header|zkl}}: argh!) |
(→{{header|zkl}}: dawn of the brain dead) |
||
Line 1,488:
text-=text - keyTable; // remove unencodable characters
if(deadChr=="Q") text-=deadChr; else text=text.replace("J","I");
text=text.pump(String,T(Void.Read,1,False),
fcn(a,b=""){ if(a==b) a+"X"+b else a+b });
if(text.len().isOdd) text+="Z";
row:='wrap(c){ keyTable.index(c)/5 };
Line 1,495 ⟶ 1,499:
ltrAt:='wrap(r,c) { keyTable[r*5 + c] };
if(a==b){ ▼
▲ if((ra:=row(a))==(rb:=row(b))) ltrRight(a) + ltrRight(b);
▲ else if((ca:=col(a))==(cb:=col(b))) ltrBelow(a) + ltrBelow(b);
▲ else ltrAt(ra,cb) + ltrAt(rb,ca);
.pump(String,Void.Read,"".create.fp(" ")).strip(); // insert blanks
}</lang>
Line 1,536 ⟶ 1,529:
e:=playfair(msg,keyTable); e.println();
decodePF(e,keyTable).println();
playfair("XX",keyTable).println() : decodePF(_,keyTable).println();</lang>
{{out}}
Line 1,543 ⟶ 1,535:
BM OD ZB XD NA BE KU DM UI XM MO UV IF
HI DE TH EG OL DI NT HE TR EX ES TU MP
MM MW
XX XZ
</pre>
|