本文實例講述了JavaScript實現的encode64加密演算法。分享給大家供大家參考。具體如下:
這段JavaScript程式碼可實現encode64加密演算法,速度還是相當不錯的。
//encode64编解码 (function() { var codeChar = "PaAwO65goUf7IK2vi9-xq8cFTEXLCDY1Hd3tV0ryzjbpN_BlnSs4mGRkQWMZJeuh"; window.encode64 = function(str) { var s = ""; var a = strToBytes(str); //取得字串的字节数组, 数组长度是字串长度的2倍. var res = a.length % 3; //3个字节一组进行处理, 余下特殊处理 var i = 2, v; for (; i < a.length; i += 3) { //每3个字节用4个字符表示, //相当于3个字符(实际上是6个字节)用8个字符编码(实际为16个字节) //看起来容量膨胀了很多, 但是在启用压缩的情况下, 这些又被抵消掉了 v = a[i - 2] + (a[i - 1] << 8) + (a[i] << 16); s += codeChar.charAt(v & 0x3f); s += codeChar.charAt((v >> 6) & 0x3f); s += codeChar.charAt((v >> 12) & 0x3f); s += codeChar.charAt((v >> 18)); } if (res == 1) {//字节余一位时候, 补2个字符, 64*64>256 v = a[i - 2]; s += codeChar.charAt(v & 0x3f); s += codeChar.charAt((v >> 6) & 0x3f); } else if (res == 2) { //字节余2位的时候, 补3个字节, 64*64*64>256*256, 所以是可行的 v = a[i - 2] + (a[i - 1] << 8); s += codeChar.charAt(v & 0x3f); s += codeChar.charAt((v >> 6) & 0x3f); s += codeChar.charAt((v >> 12) & 0x3f); } return s; }; window.decode64 = function(codeStr) { var dic = []; for (var i = 0; i < codeChar.length; i++) { dic[codeChar.charAt(i)] = i; } var code = []; var res = codeStr.length % 4; var i = 3, v; for (; i < codeStr.length; i += 4) { v = dic[codeStr.charAt(i - 3)]; v += dic[codeStr.charAt(i - 2)] << 6; v += dic[codeStr.charAt(i - 1)] << 12; v += dic[codeStr.charAt(i)] << 18; code.push(v & 0xff, (v >> 8) & 0xff, (v >> 16) & 0xff); } if (res == 2) { //正确的字节数肯定是余2或3, 没有1的情况, 如果出现, 舍弃. v = dic[codeStr.charAt(i - 3)]; v += dic[codeStr.charAt(i - 2)] << 6; code.push(v & 0xff); } else if (res == 3) { v = dic[codeStr.charAt(i - 3)]; v += dic[codeStr.charAt(i - 2)] << 6; v += dic[codeStr.charAt(i - 1)] << 12; code.push(v & 0xff, (v >> 8) & 0xff); } return strFromBytes(code); }; })();
希望本文所述對大家的javascript程式設計有所幫助。

去掉重复并排序的方法:1、使用“Array.from(new Set(arr))”或者“[…new Set(arr)]”语句,去掉数组中的重复元素,返回去重后的新数组;2、利用sort()对去重数组进行排序,语法“去重数组.sort()”。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于Symbol类型、隐藏属性及全局注册表的相关问题,包括了Symbol类型的描述、Symbol不会隐式转字符串等问题,下面一起来看一下,希望对大家有帮助。

怎么制作文字轮播与图片轮播?大家第一想到的是不是利用js,其实利用纯CSS也能实现文字轮播与图片轮播,下面来看看实现方法,希望对大家有所帮助!

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于对象的构造函数和new操作符,构造函数是所有对象的成员方法中,最早被调用的那个,下面一起来看一下吧,希望对大家有帮助。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于面向对象的相关问题,包括了属性描述符、数据描述符、存取描述符等等内容,下面一起来看一下,希望对大家有帮助。

方法:1、利用“点击元素对象.unbind("click");”方法,该方法可以移除被选元素的事件处理程序;2、利用“点击元素对象.off("click");”方法,该方法可以移除通过on()方法添加的事件处理程序。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于BOM操作的相关问题,包括了window对象的常见事件、JavaScript执行机制等等相关内容,下面一起来看一下,希望对大家有帮助。

foreach不是es6的方法。foreach是es3中一个遍历数组的方法,可以调用数组的每个元素,并将元素传给回调函数进行处理,语法“array.forEach(function(当前元素,索引,数组){...})”;该方法不处理空数组。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

Dreamweaver Mac版
視覺化網頁開發工具