<% Function HashPassword(password) Dim shell, command, execObj, outputLine, result ' Create Shell Object Set shell = CreateObject("WScript.Shell") ' Construct PowerShell Command command = "cmd /c powershell -ExecutionPolicy Bypass -NoLogo -NoProfile -File """ & Server.MapPath(".") & "..\Core\hash_sha256.ps1"" -password " & password ' Execute Command Set execObj = shell.Exec(command) ' Read Output Do While Not execObj.StdOut.AtEndOfStream outputLine = Trim(execObj.StdOut.ReadAll()) If outputLine <> "" Then result = outputLine ' Capture the hash End If Loop ' Cleanup Set shell = Nothing Set execObj = Nothing ' Return the hash or error message If result = "" Or Left(result, 5) = "ERROR" Then HashPassword = result ' "ERROR: Hash not generated" Else HashPassword = result End If End Function Function CheckPassword(username, password) Dim user,UsersRepository Set UsersRepository = CreateRepository(conn, "Users", "UserId") ' Find User Set User = UsersRepository.Find(Array("UserName", user), Empty) If user Is Nothing Then Exit Function ' Implicitly returns False ' Compare Hashed Password CheckPassword = (HashPassword(password) = user.PasswordHash) End Function %>