From the VS2022 release notes, it sounds like newer MSVC versions are using SHA256 for these checksums: (search for "SHA-256" in https://docs.microsoft.com/en-us/visualstudio/releases/2022/release-notes#17.0.0)
Since D75785 laid the groundwork, let's hook it up.
While here, I noticed llvm::SHA256 doesn't have a method to get the hash as a hex string, like llvm::MD5. But we can use llvm::toHex() and actually that could be made more efficient and llvm::MD5 could use that too.
clang-format: please reformat the code