找回密码
 加入
搜索
查看: 254|回复: 9

[系统综合] AU3有MD5校验的进度条显示吗。

[复制链接]
发表于 2025-1-28 14:17:02 | 显示全部楼层 |阅读模式
悬赏1金钱未解决
AU3有MD5校验的进度条显示吗。

发表于 2025-1-28 15:58:16 | 显示全部楼层
本帖最后由 qq413774005 于 2025-2-5 10:49 编辑

参见下面的发布内容
发表于 2025-1-28 15:58:33 | 显示全部楼层
本帖最后由 qq413774005 于 2025-2-5 10:50 编辑


参见下面的发表内容
 楼主| 发表于 2025-1-28 22:31:17 | 显示全部楼层
qq413774005 发表于 2025-1-28 15:58
#Region ;**** 参数创建于 ACNWrapper_GUI ****
#PRE_icon=C:\windows\System32\SHELL32.dll|-45
#PRE_UseU ...

感谢哥们回答,,不是想要字符串的MD5,是想要文件的MD5 进度条显示
发表于 2025-2-3 12:38:59 | 显示全部楼层
我是来学习的,MD5不能解密啊
 楼主| 发表于 2025-2-3 22:38:25 | 显示全部楼层
补充一下,这个软件是如何获取文件的MD5进度条的呢


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2025-2-5 10:44:16 | 显示全部楼层
本帖最后由 lpxx 于 2025-2-5 10:46 编辑

没人帮你啊。
#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
发表于 2025-2-5 10:47:40 | 显示全部楼层
本帖最后由 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.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2025-2-5 13:35:48 | 显示全部楼层

感谢回复。。你这个没有进度条的过程,只有到100%的结果,,我最后找到了一个命令可以读取sha1的进度条 用7z命令 7z h -scrcsha1 C:\download\test.exe
发表于 6 天前 | 显示全部楼层

这个是否多文件同时进行
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2025-3-6 14:16 , Processed in 0.116263 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表