加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

根据RFC4648,C#:base64url

发布时间:2020-12-15 08:24:20 所属栏目:百科 来源:网络整理
导读:我正在根据C#中的 RFC4648寻找base64url的(快速)标准实现. 我找到了 HttpServerUtility.UrlTokenEncode ,但看起来这并不遵循RFC4648(UrlTokenEncode在末尾添加一个数字,表示已删除的=符号的数量;请参阅here和here). 例: base64编码: Convert.ToBase64Strin
我正在根据C#中的 RFC4648寻找base64url的(快速)标准实现.

我找到了HttpServerUtility.UrlTokenEncode,但看起来这并不遵循RFC4648(UrlTokenEncode在末尾添加一个数字,表示已删除的=符号的数量;请参阅here和here).

例:

base64编码:

Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(“AA”)); //returns “QUE=”

base64url编码:

HttpServerUtility.UrlTokenEncode(System.Text.Encoding.ASCII.GetBytes(“AA”));
//returns “QUE1” but I would expect “QUE”

解决方法

根据评论,听起来像HttpServerUtility.UrlTokenEncode做正确的事情,除了填充的额外字符.所以你应该能够做到:
string customBase64 = HttpServerUtility.UrlTokenEncode(data);
string rfc4648 = customBase64.Substring(0,customBase64.Length - 1);

但是,您应该添加单元测试以检查它是否确实使用RFC 4648字母表(并且与RFC 4648相同).文档如此稀疏有点令人惊讶:(

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读