首页 > 解决方案 > 在 Elixir / Erlang 中使用 RSA 密钥

问题描述

我正在尝试使用 RS256 和 RSA 公钥验证 JWT 令牌。但是,我不断收到“ArgumentError”

这是在 Elixir / Erlang 中传递 RSA 密钥的正确方法吗?

这就是我正在做的事情:

[{_, key, _}] = "-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----\n"
|> :public_key.pem_decode

token = "__header__.__payload__.__sig__"
JsonWebToken.verify(token, %{alg: "RS256", key: key})

这是我得到的错误:

** (ArgumentError) 参数错误
(crypto) :crypto.pkey_verify_nif(:rsa, :sha256, "header.payload.sig", <<7, 49, 241, 224, ..., 85, 4, 3, 19 , ...>>, [])
(crypto) crypto.erl:420: :crypto.verify/6
(json_web_token) lib/json_web_token/jws.ex:103: JsonWebToken.Jws.verified/3 (json_web_token) lib/ json_web_token/jwt.ex:89: JsonWebToken.Jwt.verify/2

标签: cryptographyerlangelixirjwtrsa

解决方案


推荐阅读