SHA-256: Difference between revisions

No edit summary
Line 5:
 
=={{header|AutoHotkey}}==
Source: [https://github.com/jNizM/AutoHotkey_Scripts/tree/master/Functions/Checksums SHA-256 @github] by jNizM
<lang AutoHotkey>rosettastr := "Rosetta code"
MsgBox, % "StringFile:`tn" rosetta(file) "`n`nSHA-256:`tn" SHA256FileSHA256(rosettafile)
 
MsgBox % "String:`t" rosetta "`nSHA-256:`t" SHA256(rosetta)
 
 
; MD4SHA256 ===============================================================================
SHA256(string, encoding = "utf-8")
{
Line 22 ⟶ 23:
static b := h.minIndex()
o := ""
if (DllCall("advapi32\CryptAcquireContext", "Ptr*", hProv, "Ptr", 0, "Ptr", 0, "UintUInt", 24, "UintUInt", 0xF0000000))
{
if (DllCall("advapi32\CryptCreateHash", "Ptr", hProv, "UintUInt", algid, "UintUInt", 0, "UintUInt", 0, "Ptr*", hHash))
{
if (DllCall("advapi32\CryptHashData", "Ptr", hHash, "Ptr", addr, "UintUInt", length, "UintUInt", 0))
{
if (DllCall("advapi32\CryptGetHashParam", "Ptr", hHash, "UintUInt", 2, "Ptr", 0, "UintUInt*", hashlength, "uintUInt", 0))
{
VarSetCapacity(hash, hashlength, 0)
if (DllCall("advapi32\CryptGetHashParam", "Ptr", hHash, "UintUInt", 2, "Ptr", &hash, "UintUInt*", hashlength, "UintUInt", 0))
{
Looploop, % hashlength
{
v := NumGet(hash, A_Index - 1, "ucharUChar")
o .= h[(v >> 4) + b] h[(v & 0xf) + b]
}
Line 43 ⟶ 44:
DllCall("advapi32\CryptDestroyHash", "Ptr", hHash)
}
DllCall("advapi32\CryptReleaseContextCryPtreleaseContext", "Ptr", hProv, "UintUInt", 0)
}
return o
Line 58 ⟶ 59:
}</lang>
{{out}}
<pre>String: Rosetta Codecode
SHA-256: 764FAF5C61AC315F1497F9DFA542713965B785E5CC2F707D6468D7D1124CDFCF</pre>
 
Anonymous user