目標:實時加密檢測在VBS /批鍵加密它們
代碼:了Vbs &批次(任何窗口可以無需外部程序運行)。
含義:檢測鍵並更改它們。
示例:鍵入:'Hello world',然後vbs用'-8208-6840-10032-10032-11400 -15048-11400-12768-10032-6384'(例如)替換。
問題:我不想使用Code = InputBox ("Code:")
或以任何方式在程序中。這個想法是vbs文件在後臺運行。
目標:實時加密檢測在VBS /批鍵加密它們
代碼:了Vbs &批次(任何窗口可以無需外部程序運行)。
含義:檢測鍵並更改它們。
示例:鍵入:'Hello world',然後vbs用'-8208-6840-10032-10032-11400 -15048-11400-12768-10032-6384'(例如)替換。
問題:我不想使用Code = InputBox ("Code:")
或以任何方式在程序中。這個想法是vbs文件在後臺運行。
我做了一些思考,我想出了這個。遠非完美的課程,但它的作品。它通過加密使用從alfabet所有字母的選擇,當你按下1
優點停止:
set /P
,以及兩個11s,但你必須確保用戶輸入有效缺點:
這裏代碼背後:
@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
請注意,鹽串必須包含完全26個字母。您可以通過更改set /A command
中的兩個11來更改加密邏輯。
這首先創建一個變量encryptionString和saltString。它比使用salttring + 1的選擇命令作爲/ C參數,這是可供選擇的字符。它使用/ M(消息)向您顯示迄今爲止輸入的內容。
關於如何使用選擇命令的一個注意事項是它將errorlevel設置爲您在/ C參數中鍵入的字符的位置。這可以確保您可以爲不同的字符指定不同的數字,在這種情況下,i = 1,j = 2,k = 3,l = 4,m = 5,a = 6 ...(請注意,退格和空格例如對於選擇命令而言是無效的字符)
它將錯誤級別(保存在keyCode中)的值乘以11,然後加上11.然後,它只是將keyCode的值添加到encryptionString 。如果選擇命令返回27作爲errorlevel(按下了1),則循環被打破,並且尾隨 - 被添加到encryptionString。
基於他的例子,我的印象是他正在尋找一個簡單的替代密碼,這將非常容易批量完成(可能VBScript,但我的VBScript很生疏)。 – SomethingDark
@丹尼斯範吉爾斯這非常好。我不知道你在做什麼,但那是對我的。你介意花時間寫出cmd在每個規則之後做的事情嗎? 另外,是否可以實現退格和空格?因爲如果有可能的話,這個程序將非常酷。 –
用解釋更新了我的答案。如果您覺得我的答案可以解決您的問題,您可以點擊它左邊的檢查標記爲正確。 –
你可以自由地相信你喜歡的任何東西,但你想要的東西在VBScript或批處理中是不可能的。 –
目前尚不清楚你想要做什麼。如果Vbs和批處理程序與用戶交互(通過鍵盤),它們將在前臺運行。所以當你說「在後臺運行」時,你不清楚你在想什麼。澄清的另一種方法是解釋「加密」按鍵發生了什麼。他們是否應該去看前景中發生的任何程序?或者他們會去一個特定的程序(這應該是在你的腳本運行時在前臺)?或者腳本會自己使用加密的字符(在這種情況下,它可能在前臺)。 –
@ user2460798 Vbs可以在後臺運行並不斷髮送密鑰。通過執行'Set Set WshShell = WScript.CreateObject(「WScript.Shell」)''和'WshShell.SendKeys「a」'如果你無限循環,每秒10秒不返回任何內容,vbs將在後臺運行只要你可以輸入,就會返回'a'。 該程序將像創建的@ DennisvanGils,但沒有殼。 (你會在一個單詞文件中,而不是一個'a'按例如'5h'。) –