base64加密和解密_马娟的博客-程序员宅基地

技术标签: webview  postman  js  javascript  

前端js加密

var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";  
  
function base64encode(str) {  
    var out, i, len;  
    var c1, c2, c3;  
    len = str.length;  
    i = 0;  
    out = "";  
    while(i < len) {  
        c1 = str.charCodeAt(i++) & 0xff;  
        if(i == len){  
           out += base64EncodeChars.charAt(c1 >> 2);  
           out += base64EncodeChars.charAt((c1 & 0x3) << 4);  
           out += "==";  
           break;  
        }  
        c2 = str.charCodeAt(i++);  
        if(i == len){  
           out += base64EncodeChars.charAt(c1 >> 2);  
           out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));  
           out += base64EncodeChars.charAt((c2 & 0xF) << 2);  
           out += "=";  
           break;  
        }  
        c3 = str.charCodeAt(i++);  
        out += base64EncodeChars.charAt(c1 >> 2);  
        out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));  
        out += base64EncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >>6));  
        out += base64EncodeChars.charAt(c3 & 0x3F);  
    }  
    return out;  
}

前端js解密

var base64DecodeChars = new Array(  
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63,  
52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1,  
-1, 0, 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14,  
15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1,  
-1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,  
41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1);  

function base64decode(str) {  
    var c1, c2, c3, c4;  
    var i, len, out;  
    len = str.length;  
    i = 0;  
    out = "";  
    while(i < len) {  
        /* c1 */  
        do {  
          c1 = base64DecodeChars[str.charCodeAt(i++) & 0xff];  
        }while(i < len && c1 == -1);  
        if(c1 == -1)  
        break;  

        /* c2 */  
        do {  
          c2 = base64DecodeChars[str.charCodeAt(i++) & 0xff];  
        } while(i < len && c2 == -1);  
        if(c2 == -1)  
        break;  
        out += String.fromCharCode((c1 << 2) | ((c2 & 0x30) >> 4));  
        /* c3 */  
        do {  
          c3 = str.charCodeAt(i++) & 0xff;  
          if(c3 == 61)  
          return out;  
          c3 = base64DecodeChars[c3];  
        } while(i < len && c3 == -1);  
        if(c3 == -1)  
        break;  
        out += String.fromCharCode(((c2 & 0XF) << 4) | ((c3 & 0x3C) >> 2));  
        /* c4 */  
        do {  
          c4 = str.charCodeAt(i++) & 0xff;  
          if(c4 == 61)  
          return out;  
          c4 = base64DecodeChars[c4];  
        } while(i < len && c4 == -1);  
        if(c4 == -1)  
        break;  
        out += String.fromCharCode(((c3 & 0x03) << 6) | c4);  
    }  
    return out;  
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_41077029/article/details/83014517

智能推荐

DOS命令八大经典案例_weixin_34068198的博客-程序员宅基地

DOS已逐渐远去,我们每天都习惯地使用着Windows 98/Me/2000/XP,可是你了解Windows中的DOS吗?其实在有些时候DOS还是比Windows要方便快捷得多,毕竟这个是操作系统的经典之作。下面就笔者在使用DOS过程中摸索的技巧总结成八大案例来说明一下,希望多多少少能对读者在使用电脑的过程中有点启发和帮助。 案例一、“FC”—文件对比众所周知,在安装软件时,...

西电计算机应用基础 一,16秋西电《计算机应用基础(一)》在线作业 辅导资料.doc..._唐编辑的博客-程序员宅基地

16秋西电《计算机应用基础(一)》在线作业 辅导资料西电《计算机应用基础(一)》在线作业一、单选题(共 25 道试题,共 100 分。)1. 在PowrPoint中,下列可以编辑幻灯片内容的视图方式是__________。. 幻灯片. 幻灯片浏览. 幻灯片放映. 备注页正确答案:2. Wor的查找功能所在的菜单是__________。. 编辑. 插入. 格式. 视图正确答案:3. 超市收款台...

Linux虚拟机安装VMware Tools_Jeffry Jiang的博客-程序员宅基地_linux虚拟机安装vmware tools

一、准备虚拟机开机确认操作系统正常运行确认操作系统安装了perl(VMware Tools 安装程序是使用 Perl 编写的)二、安装在主机上,从 Workstation 菜单栏中选择虚拟机 &gt; 安装 VMware Tools。如果安装了早期版本的 VMware Tools,则菜单项是 更新 VMware Tools。在虚拟机中,以 root 身份登录到客户机操作系统并打开终端窗口。不带参数运行 mount 命令以确定 Linux 发行版是否自动装载 VMware Tools

一个项目玩转 Android 自定义 Drawable。_Wei_Leng的博客-程序员宅基地

DreamDrawable项目地址:yanbober/DreamDrawable简介: 一个项目玩转 Android 自定义 Drawable。更多:作者提 Bug标签:一个项目玩转 Android 自定义 Drawable,具体原理参见《Android 应用层开发 Drawable 的一些叨叨絮》,效果如下图所示。说明文档当前实现了多个 Custo...

java 图片压缩 base64_Jav文件压缩-InputStream转化为base64-Base64解码并生成图片_大小冰冰的博客-程序员宅基地

1 packagecom.hs.common.util.imgecode;23 importcom.hs.common.util.Logger;4 importnet.coobird.thumbnailator.Thumbnails;5 importorg.apache.commons.codec.binary.Base64;6 importsun.misc.BASE64Decoder;78 im...

使用Jenkins构建风格自由的项目(图文)_程铭程铭你快成名的博客-程序员宅基地

之前在这篇文章中讲了如何在Mac上安装Jenkins,如果有需要的朋友可以去了解一下。本文主要讲解如何使用Jenkins构建项目。前期准备全局工具配置打开之后会看到一系列的配置,包括JDK、Git、Gradle、Maven、Docker等配置,当然不是所有的都要配置,请按需配置。配置好自己需要的东西之后,点击保存。当然,Jenkins还有很多其他的配置选项,读者可自行在Jenk...

随便推点

【裸机开发笔记】6410的系统时钟设置(中)---相关寄存器介绍_NewThinker_wei的博客-程序员宅基地

上篇中已经详细分析了6410时钟系统的结构,现在就介绍下几个与时钟设置相关的寄存器。 1.APLL_LOCK、MPLL_LOCK、EPLL_LOCK   这三个寄存器的低十六位分别表示APLL、MPLL、EPLL这三个锁相环"锁相"所需的时间(周期数),当锁相环的输入或设置改变后,只有经历这么多个周期数后,才让锁相环有输出,这里一般保留默认值(同时也是允许的最大值)

flume+kafka+storm+mysql架构设计_nnn9223643的博客-程序员宅基地

序言前段时间学习了storm,最近刚开blog,就把这些资料放上来供大家参考。这个框架用的组件基本都是最新稳定版本,flume-ng1.4+kafka0.8+storm0.9+mysql。(项目是maven项目,需要改动mysql配置,提供两种topology:读取本地文件(用来本地测试);读取服务器日志文件。)架构图数据流向图(是visio

android8.1增大状态栏图标,转载▏手机状态栏看不懂的8个小图标,答案都在这里了!..._5G云的博客-程序员宅基地

本帖最后由 沈沈沈沈昂 于 2018-6-25 22:32 编辑对于手机状态栏上的图标,相信大多数花粉们都非常熟悉,但也难免会出现一些大家不常见的功能符号。为了不再让大家在发现陌生图标时感到懵逼。今天特意整理了8个花粉们经常会遇到的图标含义。图标mmexport1529932063421.jpg (183.71 KB, 下载次数: 3)2018-6-25 21:39 上传⒈NFC图标mmexpor...

vue-awesome-swiper挖坑填坑之路_fanjianglin的博客-程序员宅基地

1. 挖坑填坑之路因项目需要,在页面的某个位置,需要轮播10组统计数据。如下图所示:于是,查阅相关资料。找到了 两种解决方案。ElementUI的Carousel走马灯组件。vue-awesome-swiper考虑到vue-awesome-swiper实现的定制效果更强大些。选择了vue-awesome-swiper。百度到vue-awesome-swiper的npm官方文档。参考其Demo。具体过程如下:(1)Install:npm install swiper vue-awesome

javascript纯前端,实现excel表格导出功能(单行表头)_咸鱼打工人的博客-程序员宅基地

需求背景 系统中查询统计类表格数据,用户需要导出成excel文件,方便用户使用。需要前端实现excel导出功能,这里我采用xlsx.js进行实现,excel导出功能。项目采用vue架构,实现方案具体如下所示:功能实现:1:安装xlsx相关依赖npm install --save xlsx npm install --save file-save // 保存文件依赖npm install script-loader // 转二进制流依赖2.从网上...

CNNdroid:在 Android 上利用 GPU 加速执行 CNN (卷积神经网络)_weixin_34014277的博客-程序员宅基地

摘要智能设备和可穿戴设备都将受益于深度学习算法(比如CNN)的准确性和可扩展性。然而,性能和能耗等现实的问题使得在移动端设备上这类密集计算的算法变得非常受限。我们开发了CNNdroid这个GPU加速库,可以在Android设备上实现CNN网络的训练。通过实验,CNNdroid在移动设备上实现了60倍速的提升,以及130倍速的节能。CNNdroid这个...

推荐文章

热门文章

相关标签