SHA-2
Pseudocode

Pseudocode untuk algoritma SHA-256 adalah sebagai berikut. Perlu diingiat bahwa terdapat peningkatan luar biasa dalam pencampuran antara bita-bita dari w[16..63] kata dibandingkan SHA-1.
Catatan 1: Semua variabel merupakan integral 32 bit yang belum  dan dengan tambahan modulo kalkulasi 232
Catatan 2: Untuk setiap putaran, terdapat satu putaran konstan k[i&#93, dan satu entri dalam schedule array w[i], 0 ≤ i ≤ 63
Catatan 3: Kompresi fungsi menggunakan 8 variabel yang sedang bekerja, a melewati h
Catatan 4: Konvensi Big-endian digunakan ketika mengekspresiman konstanta dalam pseudocode ini,
    dan saat melakukan parsing dalam data blok pesan dari bita ke huruf, sebagai contoh,
    huruf pertama dalam pesan masukan adalah "abc" setelah padding menunjukkan  0x61626380
Inisialisasi nilai hash:
(32 bita pertama dari bagian fraksional dari akar kuadrat dari 8 bilangan prima pertama 2..19):
h0 := 0x6a09e667
h1 := 0xbb67ae85
h2 := 0x3c6ef372
h3 := 0xa54ff53a
h4 := 0x510e527f
h5 := 0x9b05688c
h6 := 0x1f83d9ab
h7 := 0x5be0cd19

Inisalisasi array konstanta putaran:
(32 bita pertama dari bagian fraksional dari akar kubik dari 64 bilangan prima pertama 2..311):
k[0..63] :=
   0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
   0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
   0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
   0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
   0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
   0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
   0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
   0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2

Pra-proses (Padding):
dimulai dengan pesan awal dengan panjang L bita
penambahan bita '1' tunggal
penambahan K '0' bita, dimana K merupakan nilai minimal bilangan >= 0 dan (L + 1 + K + 64) merupakan kelipatan 512
penmbahan L sebagai intergral big-endian 64-bita, membuat panjang setelah-proses sebagai kelipatan dari 512 bita   
dan disusun sedemikian rupa sehingga bit dalam pesan adalah: <pesan awal dengan panjang L> 1 <nol sebanyak K> <L sebagai intergral 64 bita> , (jumlah bita akan menjadi kelipatan dari 512)

Memproses pesan dalam chunk suksesif 512 bita:
memecah pesan menjadi chunk-chunk 512-bita
untuk setiap chunk
    membuat sebuah pesan schedule array 64-masukan w[0..63] dari kata 32 bita
    (Nilai inisial dalam w[0..63] tidak akan dipermasalahkan, sehingga banuak implementasi nol dari ini disini)
    menyalin chunk menjadi 16 huruf pertama w[0..15] dari pesan schedule array

    Memanjangkan 16 huruf pertama menjadi 48 huruf sisanya w[16..63] dari pesam schedule array:
    for i from 16 to 63
        s0 := (w[i-15] rightrotate  7) xor (w[i-15] rightrotate 18) xor (w[i-15] rightshift  3)
        s1 := (w[i-2] rightrotate 17) xor (w[i-2] rightrotate 19) xor (w[i-2] rightshift 10)
        w[i] := w[i-16] + s0 + w[i-7] + s1

    Inisialisasi variabel yang sedang bekerja ke nilai hash kini:
    a := h0
    b := h1
    c := h2
    d := h3
    e := h4
    f := h5
    g := h6
    h := h7

    Kompresi fungsi loop utama:
    for i from 0 to 63
        S1 := (e rightrotate 6) xor (e rightrotate 11) xor (e rightrotate 25)
        ch := (e and f) xor ((not e) and g)
        temp1 := h + S1 + ch + k[i] + w[i]
        S0 := (a rightrotate 2) xor (a rightrotate 13) xor (a rightrotate 22)
        maj := (a and b) xor (a and c) xor (b and c)
        temp2 := S0 + maj
 
        h := g
        g := f
        f := e
        e := d + temp1
        d := c
        c := b
        b := a
        a := temp1 + temp2

    Menambahkan chunk terkompresi pada nilai hash kini:
    h0 := h0 + a
    h1 := h1 + b
    h2 := h2 + c
    h3 := h3 + d
    h4 := h4 + e
    h5 := h5 + f
    h6 := h6 + g
    h7 := h7 + h

''Menghasilkan nilai hash akhir (big-endian):
digest := hash := h0 append h1 append h2 append h3 append h4 append h5 append h6 append h7
Komputasi dari nilai ch dan maj dapat dioptimalkan menggunakan cara yang sama dengan yang diatur dalam SHA-1.
SHA-224 identikal dengan SHA-256, kecuali:
nilai hash inisial h0 melewati h7 berbeda, and
output yang dikonstruksikan dengan peluluhan h7.
Nilai hash inisial SHA-224 (dalam big endian):
(32 bita kedua dari bagian fraksional dari akar kuadrat dari bilangan prima ke-9 ke ke-16 23..53)
h[0..7] :=
    0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4
SHA-512 identikal dalam konteks struktur dengan SHA-256, namun:
pesan dipecah menjadi chunk 1024 bita
nilai hash inisial dan konstanta putara diperpanjang ke 64 bita,
terdapat 80 putaran dan bukan 64,
schedule array pesan w memiliki 80 kata 64 bita dan bukan 64 kata 32 bita,
untuk memperpanjang schedule array pesan w, loop dari 16 ke 79 dan bukan dari 16 ke 63,
konstanra bulat didasarkan pada 80 bilangan prima pertama 2..409,
ukuran kata yang digunakan untuk kalkulasi adalah sepanjang 64 bita,
panjang yang ditambahkan dari pesan (sebelum pra-proses), dalam bita, adalah sebuah integral big-edian 128 bita, dan
banyak nilai shift dan rotate yang digunakan berbeda.
Nilai isial hash SHA-512 (dalam big-endian):

h[0..7] := 0x6a09e667f3bcc908, 0xbb67ae8584caa73b, 0x3c6ef372fe94f82b, 0xa54ff53a5f1d36f1, 
           0x510e527fade682d1, 0x9b05688c2b3e6c1f, 0x1f83d9abfb41bd6b, 0x5be0cd19137e2179

Putaran konstanta SHA-512:

k[0..79] := 0x428a2f98d728ae22, 0x7137449123ef65cd, 0xb5c0fbcfec4d3b2f, 0xe9b5dba58189dbbc, 0x3956c25bf348b538, 
            0x59f111f1b605d019, 0x923f82a4af194f9b, 0xab1c5ed5da6d8118, 0xd807aa98a3030242, 0x12835b0145706fbe, 
            0x243185be4ee4b28c, 0x550c7dc3d5ffb4e2, 0x72be5d74f27b896f, 0x80deb1fe3b1696b1, 0x9bdc06a725c71235, 
            0xc19bf174cf692694, 0xe49b69c19ef14ad2, 0xefbe4786384f25e3, 0x0fc19dc68b8cd5b5, 0x240ca1cc77ac9c65, 
            0x2de92c6f592b0275, 0x4a7484aa6ea6e483, 0x5cb0a9dcbd41fbd4, 0x76f988da831153b5, 0x983e5152ee66dfab, 
            0xa831c66d2db43210, 0xb00327c898fb213f, 0xbf597fc7beef0ee4, 0xc6e00bf33da88fc2, 0xd5a79147930aa725, 
            0x06ca6351e003826f, 0x142929670a0e6e70, 0x27b70a8546d22ffc, 0x2e1b21385c26c926, 0x4d2c6dfc5ac42aed, 
            0x53380d139d95b3df, 0x650a73548baf63de, 0x766a0abb3c77b2a8, 0x81c2c92e47edaee6, 0x92722c851482353b, 
            0xa2bfe8a14cf10364, 0xa81a664bbc423001, 0xc24b8b70d0f89791, 0xc76c51a30654be30, 0xd192e819d6ef5218, 
            0xd69906245565a910, 0xf40e35855771202a, 0x106aa07032bbd1b8, 0x19a4c116b8d2d0c8, 0x1e376c085141ab53, 
            0x2748774cdf8eeb99, 0x34b0bcb5e19b48a8, 0x391c0cb3c5c95a63, 0x4ed8aa4ae3418acb, 0x5b9cca4f7763e373, 
            0x682e6ff3d6b2b8a3, 0x748f82ee5defb2fc, 0x78a5636f43172f60, 0x84c87814a1f0ab72, 0x8cc702081a6439ec, 
            0x90befffa23631e28, 0xa4506cebde82bde9, 0xbef9a3f7b2c67915, 0xc67178f2e372532b, 0xca273eceea26619c, 
            0xd186b8c721c0c207, 0xeada7dd6cde0eb1e, 0xf57d4f7fee6ed178, 0x06f067aa72176fba, 0x0a637dc5a2c898a6, 
            0x113f9804bef90dae, 0x1b710b35131c471b, 0x28db77f523047d84, 0x32caab7b40c72493, 0x3c9ebe0a15c9bebc, 
            0x431d67c49c100d4c, 0x4cc5d4becb3e42b6, 0x597f299cfc657e2a, 0x5fcb6fab3ad6faec, 0x6c44198c4a475817

SHA-512 Sum & Sigma:

S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39)
S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41)

s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7)
s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6)
SHA-384 identikal dengan SHA-512, kecuali:
nilai inisial hash h0 melalui h7 berbeda (diambil dari bilangan prima ke-9 sampai ke-16), dan
output disusun oleh peluluhan h6 dan h7.
Nilai hash inisial SHA-384 (dalam big-endian):

h[0..7] := 0xcbbb9d5dc1059ed8, 0x629a292a367cd507, 0x9159015a3070dd17, 0x152fecd8f70e5939, 
           0x67332667ffc00b31, 0x8eb44a8768581511, 0xdb0c2e0d64f98fa7, 0x47b5481dbefa4fa4
SHA-512/t identikal teehadap SHA-512 kecuali:
nilau inisial hash h0 melalui h7 diberikan oleh SHA-512/t IV generation function,
output disusun oleh perpotongan rangkaian dari h0 melalu h7 di t bita,
nilau t tidak diperbolehkan setara dengan 384 dalam SHA-384
nilai t 224 dan 256 disetujui.
SHA-512/t IV generation function mengevaluasi SHA-512 yang dimodifikasi pada string ASCII "SHA-512/t", diganti dengan representasi desimal t. SHA-512 yang dimodifikasi sama dengan SHA-512 kecuali nilai awalnya h0 yang melewati h7 telah di-XORed dengan konstanta heksadesimal 0xa5a5a5a5a5a5a5a5.
Contoh implementasi C untuk keluarga fungsi hash SHA-2 dapat ditemukan di RFC 6234.
Satu iterasi dalam fungsi kompresi keluarga SHA-2.
Komponen biru melakukan operasi berikut:

     \operatorname {Ch} (E,F,G)=(E\land F)\oplus (\neg E\land G)

     \operatorname {Ma} (A,B,C)=(A\land B)\oplus (A\land C)\oplus (B\land C)

     \Sigma _{0}(A)=(A\!\ggg \!2)\oplus (A\!\ggg \!13)\oplus (A\!\ggg \!22)

     \Sigma _{1}(E)=(E\!\ggg \!6)\oplus (E\!\ggg \!11)\oplus (E\!\ggg \!25) 
 Rotasi penentu bita menggunakan konstanta berbeda untuk SSHA-512.Angka yang diberikan adalah untuk SHA-256.

Komponen warna merah  \color {red}\boxplus  merupakan tambahan (adisi) dari modul 232 untuk SHA-256, atau 264 untuk SHA-512.