home *** CD-ROM | disk | FTP | other *** search
/ ftp.whtech.com / ftp.whtech.com.tar / ftp.whtech.com / club100 / tel / crypto.ba < prev    next >
Text File  |  2006-10-19  |  2KB  |  46 lines

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