2015-05-29 16 views

Trả lời

3

Một lựa chọn là sử dụng gói pureMD5, ví dụ nếu bạn muốn tính toán hash của file foo.txt:

import qualified Data.ByteString.Lazy as LB 
import Data.Digest.Pure.MD5 

main :: IO() 
main = do 
    fileContent <- LB.readFile "foo.txt" 
    let md5Digest = md5 fileContent 
    print md5Digest 

Mã này in ra các MD5 sum giống như md5sum foo.txt.

Nếu bạn thích một lớp lót, bạn có thể sử dụng một trong này (nhập khẩu cũng tương tự như trên):

LB.readFile "foo.txt" >>= print . md5 
1

tùy chọn khác sẽ được sử dụng cryptohash mà là dựa trên việc thực hiện C và cũng cung cấp các thuật toán băm khác như SHA1:

import qualified Data.ByteString.Lazy as LB 
import Crypto.Hash 

md5 :: LB.ByteString -> Digest MD5 
md5 = hashlazy 

main :: IO() 
main = do 
    fileContent <- LB.readFile "foo.txt" 
    let md5Digest = md5 fileContent 
    print $ digestToHexByteString md5Digest 
Các vấn đề liên quan