检测 vbs/batch 中的密钥并加密它们

Detect keys in vbs/batch and encrypt them

目标:实时加密

代码:Vbs 和批处理(windows 可以 运行 无需外部程序的任何东西)。

含义:检测键并更改它们。

示例:您键入:'Hello world',然后 vbs 将其替换为“-8208-6840-10032-10032-11400 -15048-11400-12768-10032-6384”(例如)。

问题:我不想使用Code = InputBox ("Code:"),或者以任何方式出现在程序中。这个想法是后台的vbs文件运行s。

我想了想,想到了这个。当然远非完美,但它有点管用。它通过对 alfabet 中的所有字母使用选择进行加密,并在您按 1 时停止。

优点:

  • 纯批处理,可以运行在任何windows电脑上
  • 您可以指定自己的盐字符串
  • 不显示刚刚输入的字符,在 public
  • 中可以安全使用
  • 您可以让用户使用 set /P 以及两个 11 设置他自己的盐字符串,但您必须确保用户输入有效

缺点

  • 只接受字母,不接受spaces/numbers/special个符号
  • 需要盐串解密

这是它背后的代码:

@echo off
set saltString="ijklmaopqwxybcrstufghvdenz"
set "encryptionString="
:choiceLoop
cls
echo press 1 to stop
choice /C %saltString%1 /N /M %encryptionString%-
set keyCode=%errorlevel%
if %keyCode% GEQ 27 GOTO breakLoop
::encryption logic here
set /A keyCode=%keyCode%+11*11
echo %keyCode%
set encryptionString=%encryptionString%-%keyCode%
goto choiceLoop
:breakLoop
set encryptionString=%encryptionString%-
echo encrypted string: %encryptionString%
pause

请注意,salt 字符串必须正好包含 26 个字母。您可以通过更改 set /A command.

中的两个 11 来更改加密逻辑

这首先创建了一个变量、encryptionString 和 saltString。它使用带有 saltstring+1 作为 /C 参数的选择命令,这是可供选择的字符。它使用 /M(消息)来显示您到目前为止输入的内容。

关于如何使用 choice 命令需要注意的一点是它将错误级别设置为您刚刚在 /C 参数中键入的字符的位置。这确保您可以为不同的字符分配不同的数字,在这种情况下 i=1, j=2, k=3, l=4, m=5, a=6...(注意 backspace 和 space,例如 .,是选择命令的无效字符)

它将errorlevel(保存在keyCode中)的值乘以11,然后加上11。之后它只是将keyCode的值添加到encryptionString。如果选择命令 returns 27 as errorlevel (1 is pressed), 循环被打破并且尾随 - 被添加到 encryptionString.