Anonymous user
Parallel brute force: Difference between revisions
m
→{{header|Haskell}}
Line 795:
<lang haskell>import Control.Concurrent (forkIO, setNumCapabilities)
import Control.Concurrent.Chan (Chan, newChan, readChan, writeList2Chan)
import Control.Monad (replicateM,
import Crypto.Hash (SHA256(..), Digest, hashWith)
import Data.Bifunctor (first)
import Data.ByteString (ByteString, pack)
import Data.Char (isDigit)
import Data.List.Split (chunksOf)
Line 818:
chunks = chunksOf (10^3) $ replicateM 5 [97..122]
findMatch ::
findMatch
▲ | hashed `elem` hashedValues = (hashed, show bStr):findMatch xs
▲ | otherwise = findMatch xs
where
bStr = pack
hashed = hashWith SHA256 bStr
searchWorker :: Chan [TestString] -> Chan (Encrypted, String) -> IO ()
searchWorker batchChan resultChan = forever (readChan batchChan >>= writeList2Chan resultChan . foldr findMatch [])
parseInput :: [String] -> Int
parseInput [] = 2
|