Skip to content

Instantly share code, notes, and snippets.

@banditpig
banditpig / hash.rs
Created October 1, 2022 17:33
SHA256
use modular::Modular;
use std::ops::Shr;
//See https://en.wikipedia.org/wiki/SHA-2
const K: [u32; 64] = [
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,
@banditpig
banditpig / root.hs
Created September 2, 2017 07:08
Square root
import Data.List.Split
import Data.Char
import Numeric
import Control.Monad.State
data RootData = RD { pairs :: [String],
resultDigits :: String,
nextNum :: String,
dp :: Int -- from the left