文章出處
文章列表
在 ASP.NET OWIN OAuth(Microsoft.Owin.Security.OAuth)中,access token 的默認加密方法是:
1) System.Security.Cryptography.DpapiDataProtector.Protect() 2) Convert.ToBase64String() 3) .TrimEnd('=').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('/', '_');
【參考資料】
文章列表
全站熱搜
留言列表