0
我已經創建了一個WCF sercive,其中服務將來自客戶端應用程序的傳入字符串進行加密。如何將服務器的公鑰返回給客戶端,以便它可以解密從WCF服務返回的加密字符串? 我需要幫助。有沒有其他方法達到目的?hwo將公鑰從WCF服務器返回給客戶端
我已經創建了一個WCF sercive,其中服務將來自客戶端應用程序的傳入字符串進行加密。如何將服務器的公鑰返回給客戶端,以便它可以解密從WCF服務返回的加密字符串? 我需要幫助。有沒有其他方法達到目的?hwo將公鑰從WCF服務器返回給客戶端
您可以使用JSON Web令牌(JWT)。
智威湯遜通常有三部分:頭部,有效載荷和簽名。
header = '{"alg":"HS256","typ":"JWT"}'
HS256表明此令牌是使用HMAC-SHA256
的有效載荷包含我們希望使權利要求籤字:
payload = '{"loggedInAs":"admin","iat":1422779638}'
的簽名是通過編碼的頭base64url計算有效載荷並將它們連接起來作爲分隔符:
key = 'secretkey'
unsignedToken = encodeBase64(header) + '.' + encodeBase64(payload)
signature = HMAC-SHA256(key, unsignedToken)
現在令牌的樣子:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsb2dnZWRJbkFzIjoiYWRtaW4iLCJpYXQiOjE0MjI3Nzk2Mzh9.gzSraSYS8EXBxLN_oWnFSRgCzcmJmMjLiuyu5CSpyHI
在我的WCF應用程序我使用JWT的.dll爲產生這樣的令牌。
public string GenToken()
{
byte[] key = new byte[];
var payload= new Dictionary<string, object>()
{
{ "idUsr", 1 },
{ "nameUsr", admin},
{"accessTime",DateTime.UtcNow.AddMinutes(30)}
};
string token = JWT.JsonWebToken.Encode(payload, key , JWT.JwtHashAlgorithm.HS256);
return token;
}
你的想法是錯誤的(至少在安全實現方面)。您需要的是具有經第三方機構認證的證書的PKI系統。否則你的字符串並不真正安全。 – Kafros