JWT加密解密

2022-01-11 23:08:34 字數 1479 閱讀 8359

如何保證webapi的安全?

1、jwt加密解密。token

2、使用https傳輸協議。

3、把使用者所有請求的引數資訊加上乙個只有伺服器端知道的secret,做個雜湊運算,然後到了伺服器端,伺服器端也做乙個雜湊運算。如果雜湊值是一樣的,那就表示沒被篡改。

4、在業務邏輯上進行保護。(檢查訪問者是否有許可權來實現一些操作。這點是最主要的,前面3的未必能夠100%保證安全)

jwt由三部分組成(header,payload,signature),可以把使用者名稱、角色等無關緊要的資訊儲存到payload部分。

header:base64enc()  // eyaiywxnijoisfmyntyilcjuwvbfijoislduin0=

payload:base64enc()  //使用者的關鍵資訊 eyj1c2vyijoidmljagluiiwichdkijoid2vpy2hlbjeymyj9

signature:hmacsha256(base64enc(header)+","+base64enc(payload),secretkey)

header和payload部分使用的是base64編碼,幾乎等於明文,signature部分是根據header+payload+secretkey進行加密算出來的,如果payload被篡改,就可以根據signature解密時候校驗。

首先需要新增引用

install-package jwt (3.0.1支援 .net framework 3.5,3.0.2需要.net 4.6.2)。

public

void

addsecret(),,

//過期時間的key必須叫exp

};

string secret = "

123456789

";//

不能洩露的key

ijwtalgorithm algorithm = new

hmacsha256algorithm();

ijsonserializer serialer = new

jsonnetserializer();

ibase64urlencoder urlencoder = new

jwtbase64urlencoder();

ijwtencoder encoder = new

jwtencoder(algorithm, serialer, urlencoder);

string token =encoder.encode(payload, secret);

textbox1.text =token;

}

public

void subsecret(string

token)

catch

(tokenexpiredexception)

catch

(signatureverificationexception)

}

des vue 加密解密 DES加密 解密

外掛程式描述 des data encryption standard 是發明最早的最廣泛使用的分組對稱加密演算法。des演算法簡介 des data encryption standard 是發明最早的最廣泛使用的分組對稱加密演算法。des演算法的入口引數有三個 key data mode。其中k...

檔案加密解密 URl引數加密解密

sliverlight 加密解密 public static class encryption endregion region silverlight密碼解密 解密資料 加密後的字串 加密前的字串 public static string decrypt string input endregio...

加密解密 替換加解密

加密解密 替換加解密 按一定規則重新替換明文的字元生成密文。可以有多種替換方式。include void encrypt char strdata,int ncode printf original s n strdata p strdata for i 0 i nlen i printf enco...