【发布时间】:2019-07-12 05:21:01
【问题描述】:
这是为 PKEC OAuth 工作流程创建代码质询和验证程序。
以下似乎应该可以工作(使用cryptonite):
import System.Random (newStdGen, randomRs)
import Crypto.Hash (Digest, hash)
import Crypto.Hash.Algorithms (SHA256)
x = do
gen <- newStdGen
codeVerifier = C.pack . take 128 $ randomRs ('0', 'z') gen
codeChallenge = show (hash codeVerifier :: Digest SHA256)
print codeChallenge
但是很可惜,事实并非如此。因此,我将发布我在痛苦和辛劳后终于解决的答案。
【问题讨论】:
-
显而易见的
base64url函数that Hoogle suggests有什么问题? -
base64url是 jose 的镜头,需要 2 个额外的依赖项(那个,我没有意识到 :))
标签: security haskell hash oauth base64