如何保證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)。
publicvoid
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;
}
publicvoid 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...