2015-11-23 38 views
0

目標:實時加密檢測在VBS /批鍵加密它們

代碼:了Vbs &批次(任何窗口可以無需外部程序運行)。

含義:檢測鍵並更改它們。

示例:鍵入:'Hello world',然後vbs用'-8208-6840-10032-10032-11400 -15048-11400-12768-10032-6384'(例如)替換。

問題:我不想使用Code = InputBox ("Code:")或以任何方式在程序中。這個想法是vbs文件在後臺運行。

+0

你可以自由地相信你喜歡的任何東西,但你想要的東西在VBScript或批處理中是不可能的。 –

+0

目前尚不清楚你想要做什麼。如果Vbs和批處理程序與用戶交互(通過鍵盤),它們將在前臺運行。所以當你說「在後臺運行」時,你不清楚你在想什麼。澄清的另一種方法是解釋「加密」按鍵發生了什麼。他們是否應該去看前景中發生的任何程序?或者他們會去一個特定的程序(這應該是在你的腳本運行時在前臺)?或者腳本會自己使用加密的字符(在這種情況下,它可能在前臺)。 –

+0

@ user2460798 Vbs可以在後臺運行並不斷髮送密鑰。通過執行'Set Set WshShell = WScript.CreateObject(「WScript.Shell」)''和'WshShell.SendKeys「a」'如果你無限循環,每秒10秒不返回任何內容,vbs將在後臺運行只要你可以輸入,就會返回'a'。 該程序將像創建的@ DennisvanGils,但沒有殼。 (你會在一個單詞文件中,而不是一個'a'按例如'5h'。) –

回答

1

我做了一些思考,我想出了這個。遠非完美的課程,但它的作品。它通過加密使用從alfabet所有字母的選擇,當你按下1

優點停止:

  • 純批次,可以在任何Windows計算機上運行
  • 您可以指定自己的鹽串
  • 不顯示只是鍵入的字符,在公共場合安全使用
  • 你可以讓用戶設置他自己的鹽串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。

+1

基於他的例子,我的印象是他正在尋找一個簡單的替代密碼,這將非常容易批量完成(可能VBScript,但我的VBScript很生疏)。 – SomethingDark

+0

@丹尼斯範吉爾斯這非常好。我不知道你在做什麼,但那是對我的。你介意花時間寫出cmd在每個規則之後做的事情嗎? 另外,是否可以實現退格和空格?因爲如果有可能的話,這個程序將非常酷。 –

+0

用解釋更新了我的答案。如果您覺得我的答案可以解決您的問題,您可以點擊它左邊的檢查標記爲正確。 –