Advertisement
hidde663

networkshare-chat.bat

Mar 21st, 2019
236
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.45 KB | None | 0 0
  1. ::chatter.bat a basic chat program, to be placed in a shared folder/network drive.
  2. ::chatter.bat provides partial end to end encryption (only the sentence that is typed gets encrypted, not the username or timestamp)
  3. @echo off&title Chatter&setlocal enabledelayedexpansion
  4. Pushd "%~dp0"
  5. :settings
  6. set refresh=120
  7. set interval=3
  8. :start
  9. cls
  10. echo Hi, welcome to the chat program!
  11. echo.
  12. set /p "username=Enter Your Name(not entering anything will use your windows name):"
  13. if "!username!"=="" goto start
  14. :receiver
  15. set timeleft=%refresh%
  16. for /l %%A in () do (
  17. if not exist "log.dat" echo.>log.dat
  18. cls
  19. echo Chat ^(Refresh in !timeleft! seconds^):
  20. set/a timeleft-=%interval%
  21. if "!timeleft!"=="0" (
  22. for /f "tokens=4,5 delims=M " %%1 in ('dir/A-D /-c ^| find "log.dat"') do if %%1 GEQ 2048 (
  23. echo.>log.dat
  24. set timeleft=%refresh%
  25. )
  26. )
  27. for /f "tokens=1-4,* delims=:" %%a in (log.dat) do (
  28. call :decrypt "%%d"
  29. echo %%a:%%b:%%c:!decryptOut!
  30. )
  31. echo.
  32. echo Press any key to start typing . . .
  33. choice /c ²abcdefghijklmnopqrstuwvxyz0123456789 /n /t %interval% /d ² >nul
  34. if not "!errorlevel!"=="1" call :message
  35. )
  36. exit/b
  37. :message
  38. set message=
  39. set /p "message=Say:"
  40. if "!message!"=="" exit/b
  41. call :encrypt "!message!"
  42. echo (%time%) - !username!:!EncryptOut!>>log.dat
  43. exit/b
  44. :encrypt
  45. set crypt=encrypt
  46. (set CHAR[a]=UDFM45) & (set CHAR[b]=H21DGF) & (set CHAR[c]=FDH56D) & (set CHAR[d]=FGS546) & (set CHAR[e]=JUK4JH)
  47. (set CHAR[f]=ERG54S) & (set CHAR[g]=T5H4FD) & (set CHAR[h]=RG641G) & (set CHAR[i]=RG4F4D) & (set CHAR[j]=RT56F6)
  48. (set CHAR[k]=VCBC3B) & (set CHAR[l]=F8G9GF) & (set CHAR[m]=FD4CJS) & (set CHAR[n]=G423FG) & (set CHAR[o]=F45GC2)
  49. (set CHAR[p]=TH5DF5) & (set CHAR[q]=CV4F6R) & (set CHAR[r]=XF64TS) & (set CHAR[s]=X78DGT) & (set CHAR[t]=TH74SJ)
  50. (set CHAR[u]=BCX6DF) & (set CHAR[v]=FG65SD) & (set CHAR[w]=4KL45D) & (set CHAR[x]=GFH3F2) & (set CHAR[y]=GH56GF)
  51. (set CHAR[z]=45T1FG) & (set CHAR[1]=D4G23D) & (set CHAR[2]=GB56FG) & (set CHAR[3]=SF45GF) & (set CHAR[4]=P4FF12)
  52. (set CHAR[5]=F6DFG1) & (set CHAR[6]=56FG4G) & (set CHAR[7]=USGFDG) & (set CHAR[8]=FKHFDG) & (set CHAR[9]=IFGJH6)
  53. (set CHAR[0]=87H8G7) & (set CHAR[@]=G25GHF) & (set CHAR[#]=45FGFH) & (set CHAR[$]=75FG45) & (set CHAR[*]=54GDH5)
  54. (set CHAR[(]=45F465) & (set CHAR[.]=HG56FG) & (set CHAR[,]=DF56H4) & (set CHAR[-]=F5JHFH) & (set CHAR[ ]=SGF4HF)
  55. (set CHAR[\]=45GH45) & (set CHAR[/]=56H45G) & (set CHAR[:]=JSC9GF) & (set CHAR[^)]=45F461) & (set CHAR[[]=FOJDRL)
  56. (set CHAR[]]=N9DLUF) & (set CHAR[!]=0EMMM6)
  57. set "Encrypt=%~1"
  58. set "EncryptOut="
  59. call :strlenmain "%~1"
  60. set cnt=0
  61. :encryptloop
  62. set/a cnt+=1
  63. set "char=!Encrypt:~0,1!"
  64. set "Encrypt=!Encrypt:~1!"
  65. set "EncryptOut=%EncryptOut%!CHAR[%char%]!"
  66. if !cnt! LSS !ans! goto encryptloop
  67. exit/b
  68. :decrypt
  69. set crypt=decrypt
  70. (set CHAR[UDFM45]=a) & (set CHAR[H21DGF]=b) & (set CHAR[FDH56D]=c) & (set CHAR[FGS546]=d) & (set CHAR[JUK4JH]=e)
  71. (set CHAR[ERG54S]=f) & (set CHAR[T5H4FD]=g) & (set CHAR[RG641G]=h) & (set CHAR[RG4F4D]=i) & (set CHAR[RT56F6]=j)
  72. (set CHAR[VCBC3B]=k) & (set CHAR[F8G9GF]=l) & (set CHAR[FD4CJS]=m) & (set CHAR[G423FG]=n) & (set CHAR[F45GC2]=o)
  73. (set CHAR[TH5DF5]=p) & (set CHAR[CV4F6R]=q) & (set CHAR[XF64TS]=r) & (set CHAR[X78DGT]=s) & (set CHAR[TH74SJ]=t)
  74. (set CHAR[BCX6DF]=u) & (set CHAR[FG65SD]=v) & (set CHAR[4KL45D]=w) & (set CHAR[GFH3F2]=x) & (set CHAR[GH56GF]=y)
  75. (set CHAR[45T1FG]=z) & (set CHAR[D4G23D]=1) & (set CHAR[GB56FG]=2) & (set CHAR[SF45GF]=3) & (set CHAR[P4FF12]=4)
  76. (set CHAR[F6DFG1]=5) & (set CHAR[56FG4G]=6) & (set CHAR[USGFDG]=7) & (set CHAR[FKHFDG]=8) & (set CHAR[IFGJH6]=9)
  77. (set CHAR[87H8G7]=0) & (set CHAR[G25GHF]=@) & (set CHAR[45FGFH]=#) & (set CHAR[75FG45]=$) & (set CHAR[54GDH5]=*)
  78. (set CHAR[45F465]=() & (set CHAR[HG56FG]=.) & (set CHAR[DF56H4]=,) & (set CHAR[F5JHFH]=-) & (set CHAR[SGF4HF]= )
  79. (set CHAR[45GH45]=\) & (set CHAR[56H45G]=/) & (set CHAR[JSC9GF]=:) & (set CHAR[45F461]=^)) & (set CHAR[FOJDRL]=[)
  80. (set CHAR[N9DLUF]=]) & (set CHAR[0EMMM6]=!!)
  81. set "decrypt=%~1"
  82. set "decryptOut="
  83. call :strlenmain "!decrypt!"
  84. set cnt=0
  85. :decryptloop
  86. set/a cnt+=1
  87. set "char=!decrypt:~0,6!"
  88. set "decrypt=!decrypt:~6!"
  89. set "decryptOut=%decryptOut%!CHAR[%char%]!"
  90. if !cnt! LSS !ans! goto :decryptloop
  91. exit/b
  92. :strlenmain
  93. set ans=0
  94. set "string=%~1"
  95. call :strlen ans string
  96. exit/b
  97. :strlen
  98. set l=0
  99. set "s=!%~2!#"
  100. for %%P in (512 256 128 64 32 16 8 4 2 1) do (
  101. if "!s:~%%P,1!" NEQ "" (
  102. set/a "l+=%%P"
  103. set "s=!s:~%%P!"
  104. )
  105. )
  106. if "!crypt!"=="encrypt" (
  107. set "%~1=%l%"
  108. ) else (
  109. set/a "%~1=%l%/6"
  110. )
  111. exit/b
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement