Topics   All   MacOS (Only)   Windows (Only)   Linux (Only, Not)   iOS (Only, Not)  
Components   Crossplatform Mac & Win   Server   Client   Old   Deprecated   Guides   Examples   Videos
New in version: 9.5   10.0   10.1   10.2   10.3   10.4   10.5   11.0   11.1   11.2    Statistic    FMM    Blog  

Hash.DigestFile

Calculates a hash of a file.

Component Version macOS Windows Linux Server FileMaker iOS SDK
Hash 9.2 ✅ Yes ✅ Yes ✅ Yes ✅ Yes ✅ Yes
MBS( "Hash.DigestFile"; Algorithm; FilePath; OutputType { ; OutputInfo } )   More

Parameters

Parameter Description Example Flags
Algorithm Which algorithm to use.
Can be MD4, MD5, SHA, SHA1, MDC2, RIPEMD160, SHA224, SHA256, SHA384 or SHA512.
"SHA512"
FilePath The native file path to use. "C:\test.dat"
OutputType The output type.
Can be Base64, Hex, Text, File, Path.
Added Base64URL as option for plugin version 10.3.
"Hex"
OutputInfo The addition info for output.
For text it is the text encoding, for file container the file name and for path the actual native file path.
"" Optional

Result

Returns OK or error.

Description

Calculates a hash of a file.
This function is optimized to process files on disk in chunks, so it works well for several GB of file sizes.

For output we can return the digest in various ways:
  • Base64, the hash is returned as base64 encoded text.
  • Hex, the hash is returned as hex encoded text.

Possible digest engines:
DSA-SHA, DSA, MD5, MDC2, RIPEMD160, SHA, SHA1, SHA224, SHA256, SHA384 or SHA512.

This function requires a native path. Use Path.FileMakerPathToNativePath to convert a FileMaker path to a native path if required. If you like to have the user choose the path, you can use FileDialog functions.
For Server be aware that server has limited permissions and may not be able to access all files on a computer.

Examples

Create MD5 of file:

MBS("Hash.DigestFile"; "MD5"; "/Users/cs/Movies/test.mov"; "hex")

Hash a file with newer or older way:

#newer function:
Set Variable [$hash1; Value: MBS( "Hash.DigestFile"; "SHA256"; "/Users/cs/Desktop/test.xml"; "base64") ]

#older way:
Set Variable [$hash2; Value: MBS( "Hash.SHA256"; MBS("Text.ReadTextFile"; "/Users/cs/Desktop/test.xml"; "UTF-8"); 1)]

See also

Release notes

Blog Entries

Created 12nd April 2019, last changed 11st March 2021


Hash.Digest   -   Hash.MD5

Feedback: Report problem or ask question.




Links
MBS FileMaker Plugins

Start Chat