AU3有MD5校验的进度条显示吗。
AU3有MD5校验的进度条显示吗。本帖最后由 qq413774005 于 2025-2-5 10:49 编辑
参见下面的发布内容 本帖最后由 qq413774005 于 2025-2-5 10:50 编辑
参见下面的发表内容
qq413774005 发表于 2025-1-28 15:58
#Region ;**** 参数创建于 ACNWrapper_GUI ****
#PRE_icon=C:\windows\System32\SHELL32.dll|-45
#PRE_UseU ...
感谢哥们回答,,不是想要字符串的MD5,是想要文件的MD5 进度条显示 我是来学习的,MD5不能解密啊 补充一下,这个软件是如何获取文件的MD5进度条的呢
本帖最后由 lpxx 于 2025-2-5 10:46 编辑
没人帮你啊。:face (1):
#include <GUIConstantsEx.au3>
#include <Crypt.au3>
$sPath = FileOpenDialog('打开', @DesktopDir, 'All (*.*)', 1)
If @error Then Exit
$hGui = GUICreate('MD5校验的进度条显示', 350, 110)
$iProgressBar = GUICtrlCreateProgress(10, 10, 330, 20)
$iButton = GUICtrlCreateButton('开始', 250, 50, 90, 28)
$iStatusBar = GUICtrlCreateLabel('状态', 5, 110 - 20, 340, 17)
GUISetState()
While 1
Switch GUIGetMsg()
Case $iButton
$bHash = _HashFile_PrgBar($sPath, $CALG_MD5, $iProgressBar)
If @error Then
GUICtrlSetData($iStatusBar, '@error = ' & @error)
Else
GUICtrlSetData($iStatusBar, $bHash)
EndIf
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func _HashFile_PrgBar($sPath, $iALG_ID, $iProgressBar)
Local $hFile, $hCryptHash = 0, $bTempData
_Crypt_Startup()
$hFile = FileOpen($sPath, 16)
If $hFile = -1 Then Return SetError(1, 0, _Error())
$sFileSize = FileGetSize($sPath)
If $sFileSize > 1048576 Then
$SizeRead = Ceiling($sFileSize / 100)
For $i = 1 To 100
$bTempData = FileRead($hFile, $SizeRead)
If @error = -1 Then ExitLoop
If $i = 100 Then
$fFinal = True
Else
$fFinal = False
EndIf
$hCryptHash = _Crypt_HashData($bTempData, $iALG_ID, $fFinal, $hCryptHash)
If @error Then Return SetError(1, 0, _Error())
GUICtrlSetData($iProgressBar, $i)
Next
Else
$hCryptHash = _Crypt_HashData($bTempData, $iALG_ID, True)
If @error Then Return SetError(1, 0, _Error())
GUICtrlSetData($iProgressBar, 100)
EndIf
FileClose($hFile)
_Crypt_Shutdown()
Return SetError(0, 0, $hCryptHash)
EndFunc ;==>_HashFile_PrgBar
Func _Error()
_Crypt_Shutdown()
Return 0
EndFunc ;==>_Error
本帖最后由 qq413774005 于 2025-2-5 10:51 编辑
#Region ;**** 参数创建于 ACNWrapper_GUI ****
#PRE_icon=C:\windows\System32\SHELL32.dll|-27
#PRE_UseUpx=n
#PRE_UseX64=n
#PRE_Res_requestedExecutionLevel=None
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
#include <Crypt.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>;进度条
Local $bAlgorithm = $CALG_SHA1
GUICreate("Hash File", 455, 100)
Local $iInput = GUICtrlCreateInput(@ScriptFullPath, 5, 5, 200, 20)
Local $iBrowse = GUICtrlCreateButton("...", 210, 5, 35, 20)
Local $iCombo = GUICtrlCreateCombo("", 250, 5, 100, 20, $CBS_DROPDOWNLIST)
GUICtrlSetData(-1, "MD2|MD4|MD5|SHA1", "MD5")
Local $iCalculate = GUICtrlCreateButton("生成", 375, 5, 65, 65)
Local $input1 = GUICtrlCreateInput("", 5, 50, 350, 25)
$progressbar1 = GUICtrlCreateProgress(5, 85, 350, 10);进度条
;Local $iHashLabel = GUICtrlCreateLabel("Hash Digest", 5, 50, 350, 25)
GUISetState(@SW_SHOW)
_Crypt_Startup() ; To optimize performance start the crypt library.
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $iBrowse
Local $sFilePath = FileOpenDialog("打开一个文件", "", "所有文件(*.*)") ; Select a file to find the hash.
If @error Then
ContinueLoop
EndIf
GUICtrlSetData($iInput, $sFilePath) ; Set the inputbox with the filepath.
GUICtrlSetData($input1, "Hash Digest") ; Reset the hash digest label.
Case $iCombo ; Check when the combobox is selected and retrieve the correct algorithm.
Switch GUICtrlRead($iCombo) ; Read the combobox selection.
Case "MD2"
$bAlgorithm = $CALG_MD2
Case "MD4"
$bAlgorithm = $CALG_MD4
Case "MD5"
$bAlgorithm = $CALG_MD5
Case "SHA1"
$bAlgorithm = $CALG_SHA1
EndSwitch
Case $iCalculate
Local $sRead = GUICtrlRead($iInput)
If StringStripWS($sRead, 8) <> "" And FileExists($sRead) Then ; Check there is a file available to find the hash digest
Local $bHash = _Crypt_HashFile($sRead, $bAlgorithm) ; Create a hash of the file.
GUICtrlSetData($input1, StringTrimLeft($bHash, 2)) ; Set the hash digest label with the hash data.
EndIf
GUICtrlSetData($progressbar1, 100);进度条
;Sleep(500)
;GUICtrlSetData($progressbar1, 0);进度条
EndSwitch
WEnd
_Crypt_Shutdown() ; Shutdown the crypt library.
qq413774005 发表于 2025-2-5 10:47
感谢回复。。你这个没有进度条的过程,只有到100%的结果,,我最后找到了一个命令可以读取sha1的进度条 用7z命令 7z h -scrcsha1 C:\download\test.exe
页:
[1]