我正在尝试使用 replit.com 上的 Crypto.Hash 模块对文本进行哈希处理,我不知道如何解决此故障:无法找到模块“Crypto.Hash”
代码:
import Crypto.Hash (hashWith, SHA256(..))
import Data.ByteString (ByteString)
main = do
putStrLn "Hello"
putStrLn "World"
hashWith SHA256 ("hello" :: ByteString)
我将非常感谢您的帮助!!!
最佳答案
看起来 replit.com
是基于 Nix 的,它使用 replit.nix
配置文件来配置 Nix 环境,包括加载的 GHC 包。
因此,实现此功能的一种方法是编辑 replit.nix
文件。 (默认情况下,它不会显示在"file"选项卡中,但您可以单击右上角的垂直“...”,然后选择“显示隐藏文件”来查看它。)修改为看起来像这样:
{ pkgs }: {
deps = [
(pkgs.haskellPackages.ghcWithPackages (pkgs: [
pkgs.cryptonite
]))
pkgs.haskell-language-server
];
}
现在,当您运行源代码时,它应该重新配置 Nix 环境并加载所需的 cryptonite
包。您可能还需要稍微修改您的代码,因为它使用 OverloadedStrings
扩展,并且 hashWith
不是 IO 操作。我让以下 Main.hs
可以工作:
{-# LANGUAGE OverloadedStrings #-}
import Crypto.Hash (hashWith, SHA256(..))
import Data.ByteString (ByteString)
main = do
print $ hashWith SHA256 ("hello" :: ByteString)
关于Haskell 加密哈希 SHA256 replit 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71312095/