home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.whtech.com
/
ftp.whtech.com.tar
/
ftp.whtech.com
/
club100
/
tel
/
crypto.ba
< prev
next >
Wrap
Text File
|
2006-10-19
|
2KB
|
46 lines
0 'CRYPTO.BA (author unknown) Club 100 Library - 415/939-1246 BBS 937-5039 NEWSLETTER, 932-8856 VOICE
1 '19-Mar-84
2 '
10 MAXFILES=2:CLEAR5:DEFINTA-Z:S$="'-?., ABCDEFGHIJKLMNOPQRSTUVWXYZ":H$="0123456789ABCDEF"
20 DIMKS(11),A(316)
30 X=0:CLS:PRINT"key:";CHR$(27);"V";
40 IFX<0THENX=0:PRINT@4,;
50 X$=INPUT$(1):IFX$=CHR$(8)THENX=X-1:PRINTX$;:GOTO40
60 IFX$=CHR$(13)THENNC=X:GOTO100
70 IFINSTR(1,S$,X$)=0THENGOTO40
80 PRINTX$;:IFX<316THENX=X+1
90 A(X)=INSTR(1,S$,X$)-1:GOTO40
100 PRINTCHR$(27);"W";CHR$(27);"P";:NB=NC/8*5:NK=-1:K=0:RESTORE500
110 READ N:K=K+N:IFK<=NBTHENNK=NK+1:KS(NK)=N:GOTO110
120 IFNK=-1THENPRINT:PRINT"Key too short. Hit any key to continue":X$=INPUT$(1):GOTO30
130 PRINT:PRINT"NK=";NK
140 DIM KI(NK),KO(NK),KB(NK),KE(NK,KS(NK))
150 RESTORE510:FORX=0TONK:READKB(X):NEXT
160 CD=1:CB=1
170 FORKD=0TONK:FORKL=0TOKS(KD)-1:FORBIT=0TO7
180 IF(A(CD)ANDCB)THENKE(KD,KL)=(KE(KD,KL)OR2^BIT)
190 CD=CD+1:IFCD>NCTHENCD=1:CB=CB*2:IFCB>16THENPRINT"Too few chars!":STOP
200 NEXT:NEXT:NEXT
500 DATA 2,3,5,7,11,13,17,19,23,29,31,37
510 DATA1,2,3,4,5,6,7,8,9,10,11,12
1000 CLS
1010 OPEN"MDM:7E1D"FORINPUTAS1
1020 OPEN"MDM:7E1D"FOROUTPUTAS2
1030 ONMDMGOSUB2000
1040 ONERRORGOTO10000
1090 FORX=0TONK:KI(X)=KB(X):KO(X)=KB(X):NEXT:DF=-1
1100 MDMON:I$=INKEY$:IFI$=""THEN1100ELSEIFDFTHENPRINTI$;
1110 P=ASC(I$):IFP=18THENGOTO1090ELSEIFP=4THENDF=-1-DF
1120 FORX=0TONK:O=KO(X):P=(PXORKE(X,O)):KO(X)=(O+1)MODKS(X):NEXT
1130 PRINT#2,MID$(H$,INT(P/16)+1,1);MID$(H$,(PAND15)+1,1);
1140 GOTO1100
2000 A$=INPUT$(1,1):A=INSTR(H$,A$)-1:A1$=INPUT$(1,1):A1=INSTR(H$,A1$)-1:C=A*16+A1:IFC=-17THENRETURN
2010 REMPRINTCHR$(C);:RETURN
2020 FORX=0TONK:I=KI(X):C=(C XOR KE(X,I)):KI(X)=(I+1)MODKS(X):NEXT:PRINTCHR$(C);:RETURN
10000 PRINT"!ERR";:RESUME1100
20000 FORX=0TONK:FORY=0TOKS(X)-1
20010 PRINTMID$(H$,INT(KE(X,Y)/16)+1,1);MID$(H$,(KE(X,Y)AND15)+1,1);" ";:NEXT
20020 PRINT:NEXT
30000 SUBROUTINE 20000 DISPLAYS KEYS IN USE; 2010 DISPLAYS INBOUND GARBAGE
30010 FOR DEBUGGING...