---
title: SHA256
framework: cryptokit
role: symbol
role_heading: Structure
path: cryptokit/sha256
---

# SHA256

An implementation of Secure Hashing Algorithm 2 (SHA-2) hashing with a 256-bit digest.

## Declaration

```swift
struct SHA256
```

## Overview

Overview The SHA256 hash implements the HashFunction protocol for the specific case of SHA-2 hashing with a 256-bit digest (SHA256Digest). Larger digests take more space but are more secure. You can compute the digest by calling the static hash(data:) method once. Alternatively, if the data that you want to hash is too large to fit in memory, you can compute the digest iteratively by creating a new hash instance, calling the update(data:) method repeatedly with blocks of data, and then calling the finalize() method to get the result.

## Topics

### Specifying the output type

- [SHA256.Digest](cryptokit/sha256/digest.md)
- [SHA256Digest](cryptokit/sha256digest.md)

### Computing a hash iteratively

- [init()](cryptokit/sha256/init().md)
- [update(bufferPointer:)](cryptokit/sha256/update(bufferpointer:).md)
- [finalize()](cryptokit/sha256/finalize().md)

### Inspecting hash information

- [byteCount](cryptokit/sha256/bytecount.md)
- [blockByteCount](cryptokit/sha256/blockbytecount.md)

## Relationships

### Conforms To

- [Copyable](swift/copyable.md)
- [Escapable](swift/escapable.md)
- [HashFunction](cryptokit/hashfunction.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Cryptographically secure hashes

- [HashFunction](cryptokit/hashfunction.md)
- [SHA512](cryptokit/sha512.md)
- [SHA384](cryptokit/sha384.md)
