国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用base64加密解密的多種方法:包含pc端和微信小程序

這篇具有很好參考價(jià)值的文章主要介紹了使用base64加密解密的多種方法:包含pc端和微信小程序。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

在不同的開(kāi)發(fā)環(huán)境里。我們需要使用不同的方法來(lái)加密和解密

1、pc端

Window 對(duì)象
Window 對(duì)象表示瀏覽器中打開(kāi)的窗口。
平常在開(kāi)發(fā)pc端瀏覽器的時(shí)候。如果要加密或者解密成為一個(gè) base-64 編碼的字符串。我們都可以使用Window 對(duì)象里的對(duì)象方法:

atob() 解碼一個(gè) base-64 編碼的字符串。
btoa() 創(chuàng)建一個(gè) base-64 編碼的字符串

我們可以直接在瀏覽器里按f12打開(kāi)控制臺(tái),復(fù)制粘貼查看效果:

var str = "RUNOOB";
var enc = window.btoa(str);
var dec = window.atob(enc);
enc;//加密后的結(jié)果是:"UlVOT09C"
//dec;//當(dāng)我們?cè)俅伟鸭用苓^(guò)的enc解密出來(lái)。結(jié)果仍然是"RUNOOB"

1、微信小程序里

眾所周知,微信小程序的js中不能使用window對(duì)象以及document對(duì)象。
難道他們真的不存在嗎?事實(shí)并非如此。
非嚴(yán)格模式下,可以在微信小程序里。獲取window對(duì)象。但是并不推薦這樣做。

正確的做法是:

1、新建base64.js文件

export default function Base64() {
	// 私鑰
	let _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
	// 加密
	this.encode = function (input) {
		var output = "";
		var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
		var i = 0;
		input = _utf8_encode(input);
		while (i < input.length) {
		chr1 = input.charCodeAt(i++);
		chr2 = input.charCodeAt(i++);
		chr3 = input.charCodeAt(i++);
		enc1 = chr1 >> 2;
		enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
		enc3 = ((chr2 & 15) << 2) | (chr3 >> 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;
        }
        // 解密
        this.decode =  (input)=> {
			var output = "";
			var chr1, chr2, chr3;
			var enc1, enc2, enc3, enc4;
			var i = 0;
			if (input==undefined||input==null){
			}else {
				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 << 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);
					}
				}
				output = _utf8_decode(output);
				return output;
            }
 
        }
        // private method for UTF-8 encoding
        let _utf8_encode =  (string)=> {
			string = string.replace(/\r\n/g,"\n");
            var utftext = "";
            for (var n = 0; n < string.length; n++) {
            	var c = string.charCodeAt(n);
                if (c < 128) {
                	utftext += String.fromCharCode(c);
                } else if((c > 127) && (c < 2048)) {
                    utftext += String.fromCharCode((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
        let _utf8_decode = (utftext)=> {
       		var string = "";
            var i = 0;
            var c = c1 = c2 = 0;
            var c1 = 0;
            var c2 = 0;
            var c3 = 0;
            while ( i < utftext.length ) {
            	c = utftext.charCodeAt(i);
               		if (c < 128) {
                    string += String.fromCharCode(c);
                   		i++;
                    } else 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;
        }
}

2、在需要使用的頁(yè)面引入:

	import Base64 from "../../utils/base64.js";

3、使用方法:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-554943.html

	var str = 'hello world'
	let base64 = new Base64()
	//加密base64.encode	
	let jiami=base64.encode(str.toString())
	//解密base64.decode
	let jiemi=base64.decode(str.toString())

到了這里,關(guān)于使用base64加密解密的多種方法:包含pc端和微信小程序的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 利用Base64加密算法將數(shù)據(jù)加密解密

    利用Base64加密算法將數(shù)據(jù)加密解密

    Base64準(zhǔn)確來(lái)說(shuō)并不像是一種加密算法,而更像是一種編碼標(biāo)準(zhǔn)。 我們知道現(xiàn)在最為流行的編碼標(biāo)準(zhǔn)就是ASCLL,它用八個(gè)二進(jìn)制位(一個(gè)char的大?。┍硎玖?27個(gè)字符,任何二進(jìn)制序列都可以用這127個(gè)字符表示出來(lái)。 而B(niǎo)ase64則是用6個(gè)二進(jìn)制位表示了64個(gè)字符,也就是說(shuō),任何的

    2024年04月09日
    瀏覽(25)
  • base4解密(Base64加密算法)

    base64解密解碼轉(zhuǎn)換說(shuō)明: 1、Base64編碼要求把3個(gè)8位字節(jié)(3*8=24)轉(zhuǎn)化為4個(gè)6位的字節(jié)(4*6=24),之后在6位的前面補(bǔ)兩個(gè)0,形成8位一個(gè)字節(jié)的形式。如果剩下的字符不足3個(gè)字節(jié),則用0填充,輸出字符使用‘=’,因此編碼后輸出的文本末尾可能會(huì)出現(xiàn)1或2個(gè)‘=’。 2、為了保

    2024年02月16日
    瀏覽(25)
  • Java的Base64加密解密詳解

    大家好,我是免費(fèi)搭建查券返利機(jī)器人賺傭金就用微賺淘客系統(tǒng)3.0的小編,也是冬天不穿秋褲,天冷也要風(fēng)度的程序猿! 在當(dāng)今數(shù)字化時(shí)代,數(shù)據(jù)的安全性和可傳遞性變得尤為重要。Java編程語(yǔ)言提供了 Base64 編碼和解碼的工具,成為保障數(shù)據(jù)傳輸和存儲(chǔ)安全性的一項(xiàng)重要技術(shù)

    2024年04月15日
    瀏覽(33)
  • 微信小程序之 base-64加密、解密

    后端獲取 token 接口,需要加密認(rèn)證

    2024年02月11日
    瀏覽(29)
  • java和js實(shí)現(xiàn)前端加密后端解密,后端加密前端解密(Base64)

    目錄 1.前端加密后端解密 2.后端加密前端解密 在前端和后端數(shù)據(jù)傳輸時(shí),常常涉及到隱私數(shù)據(jù)的傳輸(例如用戶名和密碼),這時(shí),我們就需要對(duì)隱私數(shù)據(jù)進(jìn)行加密解密 1.前端加密后端解密 ????????1.1 前端jquery實(shí)現(xiàn) ????????1.2后端 2.后端加密前端解密 ? ? ? ? 2.1后端加密

    2024年02月16日
    瀏覽(30)
  • JS基于base64編碼加密解密文本和圖片(修訂)

    JS基于base64編碼加密解密文本和圖片(修訂)

    ? 密碼學(xué),體系太龐大了,常見(jiàn)的加密解密算法很多,這里僅介紹采用base64實(shí)現(xiàn)的加密解密的方法。 嚴(yán)格地說(shuō)base64不是加密算法,他只是一種編碼方式,是一種用64個(gè)字符來(lái)表示任意二進(jìn)制數(shù)據(jù)的方法。詳情可參見(jiàn)其它資料。 Base64編碼具有不可讀性,需要解碼后才能閱讀。

    2024年02月07日
    瀏覽(30)
  • Base64加密解密,【微信小程序】,最新Android面試合集

    Base64加密解密,【微信小程序】,最新Android面試合集

    import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import tsou.com.encryption.R; import tsou.com.encryption.base64.Base64Utils; /** 一、什么Base64算法? Base64是網(wǎng)絡(luò)上最常見(jiàn)的用于傳輸8Bit字節(jié)代碼的編碼方式之一, Base64并不是安全

    2024年03月24日
    瀏覽(24)
  • Python對(duì)AES進(jìn)行加密和解密的多種方法

    前言 本文是該專欄的第24篇,后面會(huì)持續(xù)分享python的各種干貨知識(shí),值得關(guān)注。 做過(guò)爬蟲(chóng)項(xiàng)目的同學(xué),對(duì)AES加解密都有遇到過(guò)。 在密碼學(xué)中,加密算法也分為雙向加密和單向加密。單向加密包括MD5、SHA等摘要算法,它們是不可逆的。而雙向加密包括 對(duì)稱加密 和 非對(duì)稱加密

    2023年04月14日
    瀏覽(31)
  • 使用MySQL的加密和解密方法詳解

    在數(shù)據(jù)庫(kù)應(yīng)用程序中,數(shù)據(jù)的安全性是至關(guān)重要的。為了保護(hù)敏感數(shù)據(jù)免受未經(jīng)授權(quán)的訪問(wèn),我們可以使用加密和解密技術(shù)。MySQL提供了幾種方法來(lái)實(shí)現(xiàn)數(shù)據(jù)加密和解密,本文將重點(diǎn)介紹這些方法并提供相應(yīng)的源代碼示例。 一、使用AES_ENCRYPT和AES_DECRYPT函數(shù)進(jìn)行加密和解密 M

    2024年02月02日
    瀏覽(25)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包