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