Batch file 是否可以在BAT文件中加密/散列密码?

Batch file 是否可以在BAT文件中加密/散列密码?,batch-file,encryption,passwords,password-protection,password-encryption,Batch File,Encryption,Passwords,Password Protection,Password Encryption,如何加密/散列密码,使人们无法查看代码和查看代码?如果用户可以访问源代码,他们可以绕过密码 如果这只是一个有趣的挑战,那么您可以尝试检查密码的哈希版本,而不是存储明文 然而,这需要一些文件系统管理。我不知道如何将输入直接散列到批处理文件中。如果用户可以访问源代码,他们可以绕过密码 如果这只是一个有趣的挑战,那么您可以尝试检查密码的哈希版本,而不是存储明文 然而,这需要一些文件系统管理。我不知道如何将输入直接散列到批处理文件中。在阅读了您的问题后,我很感兴趣,所以我决定制作一个批处理文件,以完成您

如何加密/散列密码,使人们无法查看代码和查看代码?

如果用户可以访问源代码,他们可以绕过密码

如果这只是一个有趣的挑战,那么您可以尝试检查密码的哈希版本,而不是存储明文


然而,这需要一些文件系统管理。我不知道如何将输入直接散列到批处理文件中。

如果用户可以访问源代码,他们可以绕过密码

如果这只是一个有趣的挑战,那么您可以尝试检查密码的哈希版本,而不是存储明文


然而,这需要一些文件系统管理。我不知道如何将输入直接散列到批处理文件中。

在阅读了您的问题后,我很感兴趣,所以我决定制作一个批处理文件,以完成您尝试的操作。我没有存储原始密码,而是将其存储在一个文件中,然后将用户输入值与名为pass.txt的文件中存储的哈希值进行比较。

Crackme.bat:

: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
@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%


只需创建一个名为
pass.txt
的文件,键入密码的md5散列并保存即可。您可以通过以下方式或联机方式创建md5散列。只需将代码另存为同一目录中的.bat open cmd,并将要散列的字符串作为批处理文件的参数


欢迎任何人编辑代码以进行改进…

在阅读了您的问题后,我很感兴趣,因此我决定制作一个批处理文件,以完成您正在尝试的操作。我没有存储原始密码,而是将其存储在一个文件中,然后将用户输入值与名为pass.txt的文件中存储的哈希值进行比较。

Crackme.bat:

: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
@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%


只需创建一个名为
pass.txt
的文件,键入密码的md5散列并保存即可。您可以通过以下方式或联机方式创建md5散列。只需将代码另存为同一目录中的.bat open cmd,并将要散列的字符串作为批处理文件的参数


欢迎任何人编辑代码进行改进…

首先:欢迎使用Stackoverflow!第二:我希望这不是你刚刚发布的密码。。。第三:请先研究一下,这个问题已经被问到了。在你考虑加密密码之前,你需要对你提供的代码进行重大修改。这个网站上有很多关于提示输入以及如何使用if命令的主题。我建议你使用搜索工具找到一些来帮助你。也许打开命令提示窗口,键入
if/?
,然后按
[ENTER]
会有所帮助,还可以使用开始搜索!第一:欢迎来到Stackoverflow!第二:我希望这不是你刚刚发布的密码。。。第三:请先研究一下,这个问题已经被问到了。在你考虑加密密码之前,你需要对你提供的代码进行重大修改。这个网站上有很多关于提示输入以及如何使用if命令的主题。我建议你使用搜索工具找到一些来帮助你。也许打开命令提示窗口,键入
if/?
,然后按
[ENTER]
会有所帮助,还可以使用开始搜索!您还应该清除
%userinput%
的内容,因为使用enter实际上会将上次使用的内容作为其值数据发送出去。@Compo感谢您的提醒。我没有想到这一点。您还应该真正清除
%userinput%
的内容,因为使用enter键基本上会将上次使用的内容作为其值数据发送出去。@Compo感谢您的提醒。我没想过