Sample code for 30+ languages & platforms
Go

Hash Binary Data (SHA256 and other hash algorithms)

Demonstrates how to hash binary bytes using SHA256, SHA384, SHA512, MD2, MD5, HAVAL, RIPEMD, etc.

Chilkat Go Downloads

Go
    success := false

    // This example requires the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    // Let's load a binary file to get the bytes..
    jpgData := chilkat.NewBinData()
    success = jpgData.LoadFile("qa_data/jpg/starfish.jpg")
    if success != true {
        fmt.Println("Failed to load file.")
        jpgData.DisposeBinData()
        return
    }

    var jpgBytes []byte
    jpgBytes = jpgData.GetBinary()

    crypt := chilkat.NewCrypt2()

    // Choose the hash algorithm.
    // Can be  "sha1", "sha256", "sha384", "sha512", "md2", "md5", "haval", "ripemd128", "ripemd160","ripemd256", or "ripemd320".
    crypt.SetHashAlgorithm("sha256")

    var hashBytes []byte
    hashBytes = crypt.HashBytes(jpgBytes)

    // Let's examine the hash as a hex string.
    sb := chilkat.NewStringBuilder()
    sb.AppendEncoded(hashBytes,"hex")
    fmt.Println("SHA256 hash = ", *sb.GetAsString())

    // We could alternatively hash the bytes and receive the hex result directly:
    crypt.SetEncodingMode("hex")
    hashHexStr := crypt.HashBytesENC(jpgBytes)
    fmt.Println("SHA256 hash = ", *hashHexStr)

    jpgData.DisposeBinData()
    crypt.DisposeCrypt2()
    sb.DisposeStringBuilder()