当前位置:Gxlcms > 数据库问题 > ASP.NET OAuth:access token的加密解密,client secret与refresh token的生成

ASP.NET OAuth:access token的加密解密,client secret与refresh token的生成

时间:2021-07-01 10:21:17 帮助过:3人阅读

=).Replace(+, -).Replace(/, _);

access token 的默认解密方法是:

1) System.Security.Cryptography.DpapiDataProtector.Unprotect()

2) Pad(text.Replace(-, +).Replace(_, /));

3) Convert.FromBase64String()

Pad 方法的实现代码如下:

private static string Pad(string text)
{
    var padding = 3 - ((text.Length + 3) % 4);
    if (padding == 0)
    {
        return text;
    }
    return text + new string(=, padding);
}

对于 client secret 与 refresh token 的生成,OWIN OAuth 没有提供现成的方法,我们用的是 RNGCryptoServiceProvider,代码如下:

RandomNumberGenerator cryptoRandomDataGenerator = new RNGCryptoServiceProvider();
byte[] buffer = new byte[96];
cryptoRandomDataGenerator.GetBytes(buffer);
string secretOrToken = Convert.ToBase64String(buffer)
    .TrimEnd(=).Replace(+, -).Replace(/, _);

【参考资料】

Katana source code

How to generate OAuth 2 Client Id and Secret

ASP.NET OAuth:access token的加密解密,client secret与refresh token的生成

标签:

人气教程排行