我找到了HttpServerUtility.UrlTokenEncode
,但看起来这并不遵循RFC4648(UrlTokenEncode在末尾添加一个数字,表示已删除的=符号的数量;请参阅here和here).
例:
base64编码:
Convert.ToBase64String(System.Text.EnCoding.ASCII.GetBytes(“AA”)); //returns “QUE=”
base64url编码:
解决方法 根据评论,听起来像httpServerUtility.UrlTokenEncode做正确的事情,除了填充的额外字符.所以你应该能够做到:httpServerUtility.UrlTokenEncode(System.Text.EnCoding.ASCII.GetBytes(“AA”));
//returns “QUE1” but I would expect “QUE”
string customBase64 = httpServerUtility.UrlTokenEncode(data);string rfc4648 = customBase64.Substring(0,customBase64.Length - 1);
但是,您应该添加单元测试以检查它是否确实使用RFC 4648字母表(并且与RFC 4648相同).文档如此稀疏有点令人惊讶:(
总结以上是内存溢出为你收集整理的根据RFC4648,C#:base64url全部内容,希望文章能够帮你解决根据RFC4648,C#:base64url所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)