Sample code for 30+ languages & platforms
Swift

Example: Hash Text in Chunks

Shows how to generate a final hash, like SHA-256, for a large text by processing it in chunks.

Chilkat Swift Downloads

Swift

func chilkatTest() {
    var success: Bool = false

    let crypt = CkoCrypt2()!
    crypt.hashAlgorithm = "sha256"
    crypt.charset = "utf-8"

    let bd = CkoBinData()!

    var s: String? = "The quick brown fox jumped over the lazy dog.\r\n"

    // Accumulate the text in a StringBuilder.  We'll demonstrate hashing the text in chunks,
    // and then also hashing the entire text at once to show the results are the same.

    bd.appendString(str: s, charset: "utf-8")
    success = crypt.hashBeginString(strData: s)

    var i: Int = 0
    while i < 200 {
        bd.appendString(str: s, charset: "utf-8")
        crypt.hashMoreString(strData: s)
        i = i + 1
    }

    // Get the hash in base64 format.
    crypt.encodingMode = "base64"

    var encodedHash: String? = crypt.hashFinalENC()
    print("Hash computed in chunks: \(encodedHash!)")

    // Let's alternatively compute the hash of the entire amount of data at once,
    // to show the hash computation is the same:
    encodedHash = crypt.hashBdENC(bd: bd)
    print("Hash computed in 1 step: \(encodedHash!)")

    // Output:

    // Hash computed in chunks: unwkVff61k40roRIJizaknreScHaL6frWe37kydXbZQ=
    // Hash computed in 1 step: unwkVff61k40roRIJizaknreScHaL6frWe37kydXbZQ=

}