webpack加密代码-《加密算法》Base64

2023-09-28 0 2,582 百度已收录

一、简介

首先有一些提示,1个字母字符=1个字节(byte)=8个比特(bit),这就是表示的单位。 后端

Base64 是互联网上传输 8 位最常见的编码方法之一。 Base64 是一种基于 64 个可复制字符表示二进制补码数据的方法。 爪哇

webpack加密代码-《加密算法》Base64

在某些网络传输通道中,有时无法支持某些字节字符。 例如,图像的补码流的每个字节不可能都是可见字符,在这种情况下就无法传输。 Base64机制可以说是相当不错了。 为了解决这些问题,它没有改变原来的合约,而是在原来的基础上进行了扩展,基于64个可复制字符来表示二进制的补码。

另外,有时我们通过记事本打开一些图片或应用程序时,会得到很多无法理解的乱码,因为补码文件中有很多字符无法显示和复制。 因此,如果你想要做笔记,如果你能处理二进制补码数据的话,你可以使用Base64进行转码webpack加密代码,将不可见的转换为可见的。 网络包

2.算法原理 我们收到一串字符,如abcdef。 首先按照ASCII码进行编码。 它将按字节数分隔字符串,每三个字节为一组。 3字节*8位===24位。 在该组中,24位数据按照每组6位分为4组。 然后将这四组6位数字的低位各填充两个0,并转换为十补码数字。 查表,得到对应的字符,即对应的Base64转换后的字符。

所以有一个问题。 如果原始数据的位数不是3的整数倍怎么办? Base会使用“=”来填补空白,所以这个“=”只会存在于Base64代码的末尾,而且只会出现1个或2个,不可能出现在中间的.git

// javaScript实现
if (!Shotgun)
    var Shotgun = {};
if (!Shotgun.Js)
    Shotgun.Js = {};
Shotgun.Js.Base64 = {
    _table: [
        'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',
        'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f',
        'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
        'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/'
    ],
  
    encode: function (bin) {
        var codes = [];
        var un = 0;
        un = bin.length % 3;
        if (un == 1)
            bin.push(0, 0);
        else if (un == 2)
            bin.push(0);
        for (var i = 2; i < bin.length; i += 3) {
            var c = bin[i - 2] << 16;
            c |= bin[i - 1] <> 18 & 0x3f]);
            codes.push(this._table[c >> 12 & 0x3f]);
            codes.push(this._table[c >> 6 & 0x3f]);
            codes.push(this._table[c & 0x3f]);
        }
        if (un >= 1) {
            codes[codes.length - 1] = "=";
            bin.pop();
        }
        if (un == 1) {
            codes[codes.length - 2] = "=";
            bin.pop();
        }
        return codes.join("");
    },
    decode: function (base64Str) {
        var i = 0;
        var bin = [];
        var x = 0, code = 0, eq = 0;
        while (i  0 && idx != 0)
                throw { "message": "u0062u0061u0073u0065u0036u0034u002Eu0074u0068u0065u002Du0078u002Eu0063u006Eu0020u0045u0072u0072u006Fu0072u003Au7F16u7801u683Cu5F0Fu9519u8BEFuFF01" };
  
            code = code <> 16);
            bin.push(code >> 8 & 0xff);
            bin.push(code & 0xff)
            code = x = 0;
        }
        if (code != 0)
            throw { "message": "u0062u0061u0073u0065u0036u0034u002Eu0074u0068u0065u002Du0078u002Eu0063u006Eu0020u0045u0072u0072u006Fu0072u003Au7F16u7801u6570u636Eu957Fu5EA6u9519u8BEF" };
        if (eq == 1)
            bin.pop();
        else if (eq == 2) {
            bin.pop();
            bin.pop();
        } else if (eq > 2)
            throw { "message": "u0062u0061u0073u0065u0036u0034u002Eu0074u0068u0065u002Du0078u002Eu0063u006Eu0020u0045u0072u0072u006Fu0072u003Au7F16u7801u683Cu5F0Fu9519u8BEFuFF01" };
  
        return bin;
    }
};

3. 应用程序 4. 后端应用程序

加密jses6

webpack加密代码-《加密算法》Base64

它具有强大的功能。 它不仅处理Base64,还支持很多模块。 星数6k+,前后端均可。

github

//后端 npm包管理
npm install crypto-js
import sha256 from 'crypto-js/sha256';
import hmacSHA512 from 'crypto-js/hmac-sha512';
import Base64 from 'crypto-js/enc-base64';
const message, nonce, path, privateKey; // ...
const hashDigest = sha256(nonce + message);
const hmacDigest = Base64.stringify(hmacSHA512(path + hashDigest, privateKey));
//前端 Brower管理
bower install crypto-js

js-Base64web

专门处理Base64。 目前星数已达2k+。 算法可用于前端和后端。

//安装
$ npm install --save js-base64
//若是你使用的es6语法,须要转载这个进行语法转换
$ npm install --save babel-preset-env
//node.js
var Base64 = require('js-base64').Base64;
//es6+
import { Base64 } from 'js-base64';
//很是轻快的使用体验
Base64.encode('dankogai');  // ZGFua29nYWk=
Base64.encode('小飼弾');    // 5bCP6aO85by+
Base64.encodeURI('小飼弾'); // 5bCP6aO85by

5. 揭开秘密

如果理解了上面的算法原理,揭秘就不是什么大问题了。 只要遵循这个规则,进行逆向计算,就可以得到原始数据。 为此,严格来说webpack加密代码,Base64并不是加密,但是编译后编译出来的东西不只是纯文本npm

收藏 (0) 打赏

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

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

悟空资源网 webpack webpack加密代码-《加密算法》Base64 https://www.wkzy.net/game/197857.html

常见问题

相关文章

官方客服团队

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