是否可以对 BAT 文件中的密码进行加密/哈希处理?

bna*_*jea 3 encryption passwords batch-file password-protection password-encryption

:start
echo Try to hack this password!
set/p "pass=>"
if not %pass% == Ebaturvaline177 goto vale
echo Correct!!
pause
 start "" https://stackoverflow.com
exit
:vale
echo Wrong.
goto :start
Run Code Online (Sandbox Code Playgroud)

如何对密码进行加密/哈希处理,以便人们无法查看代码并看到代码?

Jus*_*s3r 5

阅读你的问题后我很感兴趣,所以我决定制作一个批处理文件来完成你想要做的事情。我不是存储原始密码,而是将MD5 哈希值存储在文件中,然后将经过哈希处理的用户输入与存储在名为 pass.txt 的文件中的哈希值进行比较。

破解版.bat:

@echo off & setlocal
:loop
set userinput=
set /p userinput=Try Crack me:
set "plaintext=%userinput%"
set "file=%temp%\%~n0.tmp"
set md5=

if not defined plaintext set /P "plaintext="

if exist "%plaintext%" (
    set "file=%plaintext%"
) else for %%I in ("%file%") do if %%~zI equ 0 (
    <NUL >"%file%" set /P "=%plaintext%"
)

for /f "skip=1 delims=" %%I in ('certutil -hashfile "%file%" MD5') do (
    if not defined md5 set "md5=%%I"
)

2>NUL del "%temp%\%~n0.tmp"

echo %md5: =% >>file.txt
set /p passhash=<file.txt
ping localhost -n 2 >nul
del file.txt
set /p passtocrackhash=<pass.txt
if %passhash% equ %passtocrackhash% ( goto cracked) else ( goto  error)
:error
echo Wrong pass
goto loop
:cracked
echo Hurrah!you cracked the password it was %userinput%


Run Code Online (Sandbox Code Playgroud)

该批处理文件将获取用户输入并将其与 pass.txt 中存储的哈希值进行比较,如果密码正确,则显示成功消息,否则将引发错误并循环返回以进行另一次尝试

通过.txt:

8b1a9953c4611296a827abf8c47804d7
Run Code Online (Sandbox Code Playgroud)

只需创建一个名为 as 的文件pass.txt,然后输入密码的 md5 哈希值并保存即可。您可以从以下批处理文件或在线创建 md5 哈希值。只需将代码另存为 .bat 在同一目录中打开 cmd 并将要散列的字符串作为批处理文件的参数提供

好吧,欢迎任何人编辑代码以进行改进......