C#的HttpServerUtility.UrlTokenDecode是否有Java等效项?

C#的HttpServerUtility.UrlTokenDecode是否有Java等效项?,第1张

C#的HttpServerUtility.UrlTokenDecode是否有Java等效项?

我尝试使用

org.apache.commons.prec.binary.base64
(ctor接受一个参数,说明编码/解码是否是url安全的),但事实证明它的实现方式与UrlTokenEnpre
/ Depre不同。

我最终将C#实现迁移到Java:

 public static byte[] UrlTokenDepre(String input) {     if (input == null)        return new byte[0];    int len = input.length();     if (len < 1)        return new byte[0];    ///////////////////////////////////////////////////////////////////    // Step 1: Calculate the number of padding chars to append to this string.     //         The number of padding chars to append is stored in the last char of the string.    int numPadChars = (int)input.charAt(len - 1) - (int)'0';        if (numPadChars < 0 || numPadChars > 10) return null;    ///////////////////////////////////////////////////////////////////     // Step 2: Create array to store the chars (not including the last char)    //          and the padding chars     char[] base64Chars = new char[len - 1 + numPadChars];    ////////////////////////////////////////////////////////     // Step 3: Copy in the chars. Transform the "-" to "+", and "*" to "/"    for (int iter = 0; iter < len - 1; iter++) {         char c = input.charAt(iter);        switch (c) {  case '-':     base64Chars[iter] = '+';         break;     case '_':     base64Chars[iter] = '/';      break; default:      base64Chars[iter] = c;     break;        }    }    ////////////////////////////////////////////////////////     // Step 4: Add padding chars     for (int iter = len - 1; iter < base64Chars.length; iter++) {        base64Chars[iter] = '=';     }    // Do the actual conversion    String assembledString = String.copyValueOf(base64Chars);    return base64.deprebase64(assembledString);}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5462193.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存