基於MVC開發下的JWT ES256 解密方法


課題:Portal端有經過加密過來的token(驗證信息)。后台服務器需要對其進行解密。

解決方法1

a. 采用Jose提供的Package

如下代碼:

string json = Jose.JWT.Decode(tokens[0], JwsAlgorithm.ES256);

各種方法試驗無法成功。

 

b.后經過Portal端提供的公開健:經過解析獲得

 try

{
CngKey cng = EccKey.New(x, y, usage: usage);

string json = JWT.Decode(token, cng);

return json;
}

問題是,X,Y均是32位的Byte[] 數據,不知道如何生成,最后客戶直接提供。

 

解決方法2 利用R 語言 

library(openssl)
library(jose)

jwt<-"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiJ9.eyJjY2lfY29kZSI6Ijk5OTkiLCJ1dWlkIjoiOTllMzVjMDctOGU4NC00NGMwLWI2OTUtMGFiMTk2NTBiODY4IiwiZW1haWwiOiJrYW5la29Ac21pbGUtd29ya3MuY28uanAiLCJwc2V1ZG9ueW0iOiJhYzIwM2I2MDhlNWJiMDc4Iiwicm9sZXMiOlsiY2NpIl0sImlzcyI6InBvcnRhbC5jY2ktamlneW8uanAiLCJpYXQiOjE0NzcyOTY5OTZ9.Bryo17_lDpyTLZHhLzRzbglhll4nfLmFcuLuVkQ2lUufsGPzfONWT14VzZQDmh6_V3ZyiREChq7d3xg7tccDLQ"
(strings <- strsplit(jwt, ".", fixed = TRUE)[[1]])

base64url_decode(strings[2])

rawToChar(base64url_decode(strings[2]))

cat(rawToChar(base64url_decode(strings[2])))

問題順利解決。

R語言已經可以在VisualStuido2015Update3中順利安裝,有興趣可以自己玩。

 

解決方法3:直接用Jose.JWT中的Base64URL.Decode方法

string key = "xxxxx";

byte[] bytes = Jose.Base64Url.Decode(key);

Console.WriteLine(bytes.Length);

var json = Encoding.UTF8.GetString(bytes);

也能夠順利解決該問題

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM