Base64加解密

base64Encode(str) {
				console.log("家吗");
			  // 编码
			  var c1, c2, c3
			  var base64EncodeChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='
			  var i = 0,
			    len = str.length,
			    strin = ''
			  while (i < len) {
			    c1 = str.charCodeAt(i++) & 0xff
			    if (i == len) {
			      strin += base64EncodeChars.charAt(c1 >> 2)
			      strin += base64EncodeChars.charAt((c1 & 0x3) << 4)
			      strin += '=='
			      break
			    }
			    c2 = str.charCodeAt(i++)
			    if (i == len) {
			      strin += base64EncodeChars.charAt(c1 >> 2)
			      strin += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xf0) >> 4))
			      strin += base64EncodeChars.charAt((c2 & 0xf) << 2)
			      strin += '='
			      break
			    }
			    c3 = str.charCodeAt(i++)
			    strin += base64EncodeChars.charAt(c1 >> 2)
			    strin += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xf0) >> 4))
			    strin += base64EncodeChars.charAt(((c2 & 0xf) << 2) | ((c3 & 0xc0) >> 6))
			    strin += base64EncodeChars.charAt(c3 & 0x3f)
			  }
			  return strin
			console.log("strin",strin);
			}
			,
			base64Decode(input) {
			  // 解码
			  var base64EncodeChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='
			  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 = base64EncodeChars.indexOf(input.charAt(i++))
			    enc2 = base64EncodeChars.indexOf(input.charAt(i++))
			    enc3 = base64EncodeChars.indexOf(input.charAt(i++))
			    enc4 = base64EncodeChars.indexOf(input.charAt(i++))
			    chr1 = (enc1 << 2) | (enc2 >> 4)
			    chr2 = ((enc2 & 15) << 4) | (enc3 >> 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)
			    }
			  }
			  return this.utf8Decode(output)
			}
			,
			utf8Decode(utftext) {
			  // utf-8解码
			  var string = ''
			  let i = 0
			  let c = 0
			  let c1 = 0
			  let c2 = 0
			  while (i < utftext.length) {
			    c = utftext.charCodeAt(i)
			    if (c < 128) {
			      string += String.fromCharCode(c)
			      i++
			    } else if (c > 191 && c < 224) {
			      c1 = utftext.charCodeAt(i + 1)
			      string += String.fromCharCode(((c & 31) << 6) | (c1 & 63))
			      i += 2
			    } else {
			      c1 = utftext.charCodeAt(i + 1)
			      c2 = utftext.charCodeAt(i + 2)
			      string += String.fromCharCode(((c & 15) << 12) | ((c1 & 63) << 6) | (c2 & 63))
			      i += 3
			    }
			  }
			  return string
			},


 

 bindQRCode () {
							   let qrCodeData='123456'
							   qrCodeData= this.base64Encode(qrCodeData);  
							 console.log("qrCodeData加密",qrCodeData);
								let	 qrCodeDataIng= this.base64Decode(qrCodeData);  
							 console.log("qrCodeDataIng解密",qrCodeDataIng);
						
						         
						},

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值