javascript base64解码-Javascript实现base64加解密方法示例

2024-02-10 0 7,381 百度已收录

这几天,在使用PHP向后端传值时,遇到了一个问题。 我必须将代码传递给形式参数。 如果使用urlencode()和urldecode()函数javascript base64解码,由于php和js的相关函数算法不一致,解码js会比较困难。 所以我打算使用通用的base64加密来揭秘。

javascript base64解码-Javascript实现base64加解密方法示例

Base64加密揭秘

javascript base64解码-Javascript实现base64加解密方法示例

下面是用javascript编写的base64的功能和技巧。

javascript base64解码-Javascript实现base64加解密方法示例

//1.加密解密方法使用:
//1.加密 
var str = '124中文内容'; 
var base = new Base64(); 
var result = base.encode(str); 
//document.write(result); 
//2.解密 
var result2 = base.decode(result); 
document.write(result2); 
//2.加密、解密算法封装:
function Base64() { 
  // private property 
  _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; 
  // public method for encoding 
  this.encode = function (input) { 
    var output = ""; 
    var chr1, chr2, chr3, enc1, enc2, enc3, enc4; 
    var i = 0; 
    input = _utf8_encode(input); 
    while (i > 2; 
      enc2 = ((chr1 & 3) <> 4); 
      enc3 = ((chr2 & 15) <> 6); 
      enc4 = chr3 & 63; 
      if (isNaN(chr2)) { 
        enc3 = enc4 = 64; 
      } else if (isNaN(chr3)) { 
        enc4 = 64; 
      } 
      output = output + 
      _keyStr.charAt(enc1) + _keyStr.charAt(enc2) + 
      _keyStr.charAt(enc3) + _keyStr.charAt(enc4); 
    } 
    return output; 
  } 
  // public method for decoding 
  this.decode = function (input) { 
    var output = ""; 
    var chr1, chr2, chr3; 
    var enc1, enc2, enc3, enc4; 
    var i = 0; 
    input = input.replace(/[^A-Za-z0-9+/=]/g, ""); 
    while (i < input.length) { 
      enc1 = _keyStr.indexOf(input.charAt(i++)); 
      enc2 = _keyStr.indexOf(input.charAt(i++)); 
      enc3 = _keyStr.indexOf(input.charAt(i++)); 
      enc4 = _keyStr.indexOf(input.charAt(i++)); 
      chr1 = (enc1 <> 4); 
      chr2 = ((enc2 & 15) <> 2); 
      chr3 = ((enc3 & 3) << 6) | enc4; 
      output = output + String.fromCharCode(chr1); 
      if (enc3 != 64) { 
        output = output + String.fromCharCode(chr2); 
      } 
      if (enc4 != 64) { 
        output = output + String.fromCharCode(chr3); 
      } 
    } 
    output = _utf8_decode(output); 
    return output; 
  } 
  // private method for UTF-8 encoding 
  _utf8_encode = function (string) { 
    string = string.replace(/rn/g,"n"); 
    var utftext = ""; 
    for (var n = 0; n < string.length; n++) { 
      var c = string.charCodeAt(n); 
      if (c  127) && (c > 6) | 192); 
        utftext += String.fromCharCode((c & 63) | 128); 
      } else { 
        utftext += String.fromCharCode((c >> 12) | 224); 
        utftext += String.fromCharCode(((c >> 6) & 63) | 128); 
        utftext += String.fromCharCode((c & 63) | 128); 
      } 
    } 
    return utftext; 
  } 
  // private method for UTF-8 decoding 
  _utf8_decode = function (utftext) { 
    var string = ""; 
    var i = 0; 
    var c = c1 = c2 = 0; 
    while ( i < utftext.length ) { 
      c = utftext.charCodeAt(i); 
      if (c  191) && (c < 224)) { 
        c2 = utftext.charCodeAt(i+1); 
        string += String.fromCharCode(((c & 31) << 6) | (c2 & 63)); 
        i += 2; 
      } else { 
        c2 = utftext.charCodeAt(i+1); 
        c3 = utftext.charCodeAt(i+2); 
        string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)); 
        i += 3; 
      } 
    } 
    return string; 
  } 
}

javascript base64解码-Javascript实现base64加解密方法示例

另外,如果您需要云服务器,可以了解风纳云网。 国内外云服务器15元起,三天无理由+7*72小时售后在线。 公司持有IDC牌照javascript base64解码,提供“云服务器、裸机服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免注册服务器等云主机租赁服务,以及企业综合解决方案”云迁移,具有“安全稳定、简单易用、服务可用性高、性价比高”的特点。优点:专为企业上云建设定制,可满足用户丰富多样的应用需求场景。

javascript base64解码-Javascript实现base64加解密方法示例

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 javascript javascript base64解码-Javascript实现base64加解密方法示例 https://www.wkzy.net/game/199768.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务