关于把密码写入扇区进行保护及密码验证的代码.
问题提出背景及讨论过程可参看本人这几天提的几个问题贴:
1,如何防止计算机硬盘(Hard)上特定文件被误彻底删除
2,能否能用批处理实现编码的转换
3,如何确认哪些扇区是可写入的绝对安全扇区.现在已基本达到预期目标,下面的代码算是一个总结,感谢每一位的帮助和指教.警告:由于使用此代码所造成的一切后果自负.
====================
@echo off
rem 密码写入到扇区.
rem .....................
rem 此前完成输入密码,并把密码转成MD5(32字符).这里直接或者间接给出字符.过程省略.
set pwd=E10ADC3949BA59ABBE56E057F20F883E
:sector_1
cls
echo.
echo 是否需要把设置的密码保存到39扇区,以提高密码系统的安全性?
echo.
echo 计算机硬盘(Hard)上的密码文件丢失后,将读取扇区里面的密码,用来验证.
echo.
set sector=
Set /P sector= 是否需要 ?[y/是 n/否]:
If not %sector%#==y# Goto pwd_1
:sector_2
echo.
echo --------------------------------------
echo 您选择(Choose)了把密码保存到39扇区,请最开始确认39扇区内的信息.
echo.
echo 若是首次选择(Choose)写入扇区,应确保39扇区为空闲扇区,即显示信息全部为0.
echo 若不全为0,请不要选择(Choose)写入.
echo.
echo 曾经进行过写入操作后,该扇区显示的将是上次写入的内容.
echo.
echo 按任意键,查看39扇区信息.
pause>nul
tools\diskrw.exe 0 39 1 /l /p
echo.
echo --------------------------------------
echo.
echo 请确认是否写入39扇区:
echo.
echo 选择(Choose)“是”后,将会出现最后的改写提示.
echo "Disk Sector Will be Modified, Continue ? (Y/N)"
echo 输入“Y”将进行写入操作,放弃请选“N”.
echo.
echo --------------------------------------
set sector_2=
Set /P sector_2= 是否写入39扇区?[y/是 n/否]:
If not %sector_2%#==y# Goto pwd_1
:sector_3
echo %pwd%..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................>%temp%\039.bin
tools\diskrw.exe 0 39 1 /r %temp%\039.bin
del %temp%\039.bin >nul:pwd_1
cls
Echo.
Echo.
Echo 密码设置完成,请牢记您的密码,下次运行时生效.
PING/n 3 12VII.1>NUL
goto exit
==============================
@echo off
rem 验证密码.
tools\diskrw.exe 0 39 1 /s %temp%\039.ini >nul
cls
for,/f,"tokens=1 delims=.",%%i,In (%temp%\039.ini) Do (
set pwd_s=%%i
)
del %temp%\039.ini >nul
rem 输入验证密码,并把密码转成MD5(32字符).过程省略.
if %pwd_s%#=%pwd%# goto ok
goto exit-------
:) 学习一下结论(Conclusion)哈 呵呵-------
偷偷的看上一眼 有用就收下;P ;P