我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Base64加密解密

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Base64加密解密

一、前端加密

一、方法 一

const that = this;const copyruleForm = JSON.parse(JSON.stringify(that.ruleForm));const c_clus_content = window.btoa(unescape(encodeURIComponent(this.ruleForm.c_clus_content)));const c_clus_econtent = window.btoa(unescape(encodeURIComponent(this.ruleForm.c_clus_econtent)))注:unescape()方法已经被弃用,不建议使用

二、方法 二

注:深拷贝处理

const that = this;# 深拷贝const copyruleForm = JSON.parse(JSON.stringify(that.ruleForm));const c_clus_content = btoa(encodeURI(that.ruleForm.c_clus_content));const c_clus_econtent = btoa(encodeURI(that.ruleForm.c_clus_econtent));

二、后端解密

一、方法 一

    public ProdCompDuty update(ProdCompDutyDTO prodCompDutyDTO) {        ProdCompDuty field = prodCompDutyDTO.getField();        //Base64解密 责任中文内容和责任英文内容        if (StringUtil.isNotBlank(prodCompDutyDTO.getIsBase64()) && "true".equals(prodCompDutyDTO.getIsBase64())) {            byte[] bytes1 = Base64.getDecoder().decode(field.getC_clus_content());            String c_clus_content = new String(bytes1);            field.setC_clus_content(c_clus_content);            byte[] bytes2 = Base64.getDecoder().decode(field.getC_clus_econtent());            String c_clus_econtent = new String(bytes2);            field.setC_clus_econtent(c_clus_econtent);        }            ProdCompDutyDao.updateOne_odb_duty_no(field);            return field;    }

二、方法 二

public ProdCompDuty update(ProdCompDutyDTO prodCompDutyDTO) {         ProdCompDuty field = prodCompDutyDTO.getField();        //Base64解密 责任中文内容和责任英文内容        if (StringUtil.isNotBlank(prodCompDutyDTO.getIsBase64()) && "true".equals(prodCompDutyDTO.getIsBase64())) {            try {                String c_clus_content = URLDecoder.decode(new String(Base64.getDecoder().decode(field.getC_clus_content()), "utf-8"), "utf-8");                String c_clus_econtent = URLDecoder.decode(new String(Base64.getDecoder().decode(field.getC_clus_econtent()), "utf-8"), "utf-8");                field.setC_clus_content(c_clus_content);                field.setC_clus_econtent(c_clus_econtent);            } catch (UnsupportedEncodingException e) {                e.printStackTrace();            }        }        ProdCompDutyDao.updateOne_odb_duty_no(field);        return field;    }

三、前端加密解密

一、window浏览器环境

window.btoa() 将ascii字符串或二进制数据转换成 base64 编码过的字符串

window.atob() 函数用来解码被 base64 编码过的数据

# 方法名就是 btoa和 atob ,具体语法如下:window.btoa('hellow World')  // 编码   aGVsbG93IFdvcmxkwindow.atob('aGVsbG93IFdvcmxk')  // 解码 hellow World

注意:不适用于带中文解密,即window.btoa 与 window.atob 不支持中文,且 IE9 以下不支持atob、btoa

解决:btoa 不支持 Unicode 字符编码的问题编码时,先用 encodeURIComponent 对字符串进行编码,再进行 btoa 进行 Base64 编码解码时,先用 atob 对 Base64 编码的串进行解码,再用 decodeURIComponent 对字符串进行解码

var str = "hello,中国";var encoded_str = btoa(encodeURIComponent(str));var decoded_str = decodeURIComponent(atob(encoded_str));console.log(encoded_str); // aGVsbG8lMkMlRTQlQjglQUQlRTUlOUIlQkQ=console.log(decoded_str); // hello,中国在这里插入代码片

二、封装base64

;(function (global, factory) {    typeof exports === 'object' && typeof module !== 'undefined'        ? module.exports = factory(global)        : typeof define === 'function' && define.amd        ? define(factory) : factory(global)}((    typeof self !== 'undefined' ? self        : typeof window !== 'undefined' ? window        : typeof global !== 'undefined' ? global: this), function(global) {    'use strict';    // existing version for noConflict()    global = global || {};    var _Base64 = global.Base64;    var version = "2.5.2";    // if node.js and NOT React Native, we use Buffer    var buffer;    if (typeof module !== 'undefined' && module.exports) {        try {            buffer = eval("require('buffer').Buffer");        } catch (err) {            buffer = undefined;        }    }    // constants    var b64chars        = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';    var b64tab = function(bin) {        var t = {};        for (var i = 0, l = bin.length; i < l; i++) t[bin.charAt(i)] = i;        return t;    }(b64chars);    var fromCharCode = String.fromCharCode;    // encoder stuff    var cb_utob = function(c) {        if (c.length < 2) {            var cc = c.charCodeAt(0);            return cc < 0x80 ? c                : cc < 0x800 ? (fromCharCode(0xc0 | (cc >>> 6))    + fromCharCode(0x80 | (cc & 0x3f)))                : (fromCharCode(0xe0 | ((cc >>> 12) & 0x0f))                    + fromCharCode(0x80 | ((cc >>>  6) & 0x3f))                    + fromCharCode(0x80 | ( cc         & 0x3f)));        } else {            var cc = 0x10000                + (c.charCodeAt(0) - 0xD800) * 0x400                + (c.charCodeAt(1) - 0xDC00);            return (fromCharCode(0xf0 | ((cc >>> 18) & 0x07))                    + fromCharCode(0x80 | ((cc >>> 12) & 0x3f))                    + fromCharCode(0x80 | ((cc >>>  6) & 0x3f))                    + fromCharCode(0x80 | ( cc         & 0x3f)));        }    };    var re_utob = /[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g;    var utob = function(u) {        return u.replace(re_utob, cb_utob);    };    var cb_encode = function(ccc) {        var padlen = [0, 2, 1][ccc.length % 3],        ord = ccc.charCodeAt(0) << 16            | ((ccc.length > 1 ? ccc.charCodeAt(1) : 0) << 8)            | ((ccc.length > 2 ? ccc.charCodeAt(2) : 0)),        chars = [            b64chars.charAt( ord >>> 18),            b64chars.charAt((ord >>> 12) & 63),            padlen >= 2 ? '=' : b64chars.charAt((ord >>> 6) & 63),            padlen >= 1 ? '=' : b64chars.charAt(ord & 63)        ];        return chars.join('');    };    var btoa = global.btoa ? function(b) {        return global.btoa(b);    } : function(b) {        return b.replace(/[\s\S]{1,3}/g, cb_encode);    };    var _encode = function(u) {        var isUint8Array = Object.prototype.toString.call(u) === '[object Uint8Array]';        return isUint8Array ? u.toString('base64')            : btoa(utob(String(u)));    }    var encode = function(u, urisafe) {        return !urisafe            ? _encode(u)            : _encode(String(u)).replace(/[+\/]/g, function(m0) {                return m0 == '+' ? '-' : '_';            }).replace(/=/g, '');    };    var encodeURI = function(u) { return encode(u, true) };    // decoder stuff    var re_btou = /[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g;    var cb_btou = function(cccc) {        switch(cccc.length) {        case 4:            var cp = ((0x07 & cccc.charCodeAt(0)) << 18)                |    ((0x3f & cccc.charCodeAt(1)) << 12)                |    ((0x3f & cccc.charCodeAt(2)) <<  6)                |     (0x3f & cccc.charCodeAt(3)),            offset = cp - 0x10000;            return (fromCharCode((offset  >>> 10) + 0xD800)                    + fromCharCode((offset & 0x3FF) + 0xDC00));        case 3:            return fromCharCode(                ((0x0f & cccc.charCodeAt(0)) << 12)                    | ((0x3f & cccc.charCodeAt(1)) << 6)                    |  (0x3f & cccc.charCodeAt(2))            );        default:            return  fromCharCode(                ((0x1f & cccc.charCodeAt(0)) << 6)                    |  (0x3f & cccc.charCodeAt(1))            );        }    };    var btou = function(b) {        return b.replace(re_btou, cb_btou);    };    var cb_decode = function(cccc) {        var len = cccc.length,        padlen = len % 4,        n = (len > 0 ? b64tab[cccc.charAt(0)] << 18 : 0)            | (len > 1 ? b64tab[cccc.charAt(1)] << 12 : 0)            | (len > 2 ? b64tab[cccc.charAt(2)] <<  6 : 0)            | (len > 3 ? b64tab[cccc.charAt(3)]       : 0),        chars = [            fromCharCode( n >>> 16),            fromCharCode((n >>>  8) & 0xff),            fromCharCode( n         & 0xff)        ];        chars.length -= [0, 0, 2, 1][padlen];        return chars.join('');    };    var _atob = global.atob ? function(a) {        return global.atob(a);    } : function(a){        return a.replace(/\S{1,4}/g, cb_decode);    };    var atob = function(a) {        return _atob(String(a).replace(/[^A-Za-z0-9\+\/]/g, ''));    };    var _decode = buffer ?        buffer.from && Uint8Array && buffer.from !== Uint8Array.from        ? function(a) {            return (a.constructor === buffer.constructor                    ? a : buffer.from(a, 'base64')).toString();        }        : function(a) {            return (a.constructor === buffer.constructor                    ? a : new buffer(a, 'base64')).toString();        }        : function(a) { return btou(_atob(a)) };    var decode = function(a){        return _decode(            String(a).replace(/[-_]/g, function(m0) { return m0 == '-' ? '+' : '/' })                .replace(/[^A-Za-z0-9\+\/]/g, '')        );    };    var noConflict = function() {        var Base64 = global.Base64;        global.Base64 = _Base64;        return Base64;    };    // export Base64    global.Base64 = {        VERSION: version,        atob: atob,        btoa: btoa,        fromBase64: decode,        toBase64: encode,        utob: utob,        encode: encode,        encodeURI: encodeURI,        btou: btou,        decode: decode,        noConflict: noConflict,        __buffer__: buffer    };    // if ES5 is available, make Base64.extendString() available    if (typeof Object.defineProperty === 'function') {        var noEnum = function(v){            return {value:v,enumerable:false,writable:true,configurable:true};        };        global.Base64.extendString = function () {            Object.defineProperty(                String.prototype, 'fromBase64', noEnum(function () {                    return decode(this)                }));            Object.defineProperty(                String.prototype, 'toBase64', noEnum(function (urisafe) {                    return encode(this, urisafe)                }));            Object.defineProperty(                String.prototype, 'toBase64URI', noEnum(function () {                    return encode(this, true)                }));        };    }    //    // export Base64 to the namespace    //    if (global['Meteor']) { // Meteor.js        Base64 = global.Base64;    }    // module.exports and AMD are mutually exclusive.    // module.exports has precedence.    if (typeof module !== 'undefined' && module.exports) {        module.exports.Base64 = global.Base64;    }    else if (typeof define === 'function' && define.amd) {        // AMD. Register as an anonymous module.        define([], function(){ return global.Base64 });    }    // that's it!    return {Base64: global.Base64}}));

方法使用

1、引用import {Base64} from './utils/base64'2、使用Base64.encode('hellow world'); // 编码  aGVsbG93IFdvcmxkBase64.decode('aGVsbG93IFdvcmxk'); // 解码  hellow World

三、开源的base64.js

1、下载依赖$ npm install --save js-base642、使用方法:import {Base64} from 'js-base64'Base64.encode('hellow world'); // 编码  aGVsbG93IFdvcmxkBase64.decode('aGVsbG93IFdvcmxk'); // 解码  hellow World

四、后端Base64工具类

一、base64加密解密(apache)

import org.apache.commons.net.util.Base64;import java.io.UnsupportedEncodingException;@SuppressWarnings("restriction")public class BaseEncodeAndDecode {  //加密      public static String getBase64(String str){          byte[] b=null;          String s=null;          try {              b = str.getBytes("utf-8");          } catch (UnsupportedEncodingException e) {              e.printStackTrace();          }          if(b!=null){              s=Base64.encodeBase64String(b);        }        return s;      }      // 解密        public static String getFromBase64(String s) {            byte[] b = null;            String result = null;            if (s != null) {                try {                b = Base64.decodeBase64(s);                result = new String(b, "utf-8");                } catch (Exception e) {                    e.printStackTrace();                }            }            return result;        } } 

二、base64加密解密(util)

import java.util.Base64;public class BaseEncodeAndDecode {  //加密private static String BaseEncodeAndDecode(String str) {//String encodedString = Base64.getEncoder().encodeToString(str.getBytes());String encodedString = Base64.getEncoder().withoutPadding().encodeToString(str.getBytes());return encodedString;}//解密private static String getFromBase64(String str) {byte[] decodedBytes = Base64.getDecoder().decode(str);String decodedString = new String(decodedBytes);return decodedString;}} 

来源地址:https://blog.csdn.net/weixin_45207323/article/details/129836690

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Base64加密解密

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Base64加密解密

一、Base64加密解密 一、前端加密 一、方法 一 const that = this;const copyruleForm = JSON.parse(JSON.stringify(that.ruleForm));const c_clus
2023-08-18

urlsafe base64正则加解密

URL安全的Base64是一种使用标准Base64字符集,并且将字符"+"和"/"替换为"-"和"_"的编码方式。因此,对于URL安全的Base64编码的加密和解密,可以先将字符串进行Base64编码,然后将"+"替换为"-",将"/"替换
2023-09-21

Java Base64 加密与解密示例代码

基本的加密尽量保持简单,加密输入字符串没有增加任何换行符。输出被映射到“A-Za-z0-9+/”字符集中,解密从该字符集中解析为任意字符,这篇文章主要介绍了Java Base64 加密与解密,需要的朋友可以参考下
2022-12-12

如何使用vbs实现解密base64加密的脚本

这篇文章主要为大家展示了“如何使用vbs实现解密base64加密的脚本”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用vbs实现解密base64加密的脚本”这篇文章吧。代码如下:Funct
2023-06-08

怎么在java中使用Base64进行加密与解密

怎么在java中使用Base64进行加密与解密?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Base64加密与解密操作package cn.mldn.demo;import
2023-06-14

php怎么实现base64加密

在php中,可以使用base64_encode()函数实现base64加密,该函数可以对字符串数据进行base64编码,语法“base64_encode($data)”;加密成功则返回base64编码的字符串,失败则返回False。
2016-03-10

vue怎么使用base64加密

本篇内容主要讲解“vue怎么使用base64加密”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue怎么使用base64加密”吧!vue项目使用base64加密1.vue-cli 脚手架搭建前端
2023-07-02

Python的加密模块之hashlib与base64详解及常用加密方法

我们来学习一下Python中的加密模块,加密模块在工作中被广泛应用,比如数据的传入不希望被捕获,通过把数据加密。这样即使被捕获也无法获取到数据的真实信息,今天我们就来学习一下关于加密的方法,感兴趣的朋友跟随小编一起看看吧
2023-02-24

Base64加解密的实现方式实例详解

Base64加解密的实现方式实例详解本实现方式基于JDK 1.8 实现:import java.util.Base64; import java.util.Base64.Decoder; import java.util.Base64.En
2023-05-31

Android编程加密算法小结(AES、Base64、RAS加密算法)

本文实例总结了Android编程加密算法。分享给大家供大家参考,具体如下: android常用加密算法之Base64加密算法:package com.long; /*** Copyright (C) 2010 The Android Ope
2022-06-06

java如何使用Apache commons codec进行MD5加密,BASE64加密解密,执行系统命令

这篇文章将为大家详细讲解有关java如何使用Apache commons codec进行MD5加密,BASE64加密解密,执行系统命令,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。编写代码之前先来介绍一下
2023-05-30

c#中base64加密怎么实现

在C#中实现Base64加密可以使用Convert.ToBase64String方法,示例如下:string plainText = "Hello, World!";byte[] plainTextBytes = System.Text
c#中base64加密怎么实现
2024-04-08

Java RSA加密解密实现方法分析【附BASE64 jar包下载】

本文实例讲述了Java RSA加密解密实现方法。分享给大家供大家参考,具体如下:该工具类中用到了BASE64,需要借助第三方类库:javabase64-1.3.1.jarjavabase64-1.3.1.jar 本站下载地址。注意:RSA加
2023-05-30

oracle中base64加密的方法是什么

在Oracle数据库中,可以使用UTL_ENCODE.BASE64_ENCODE函数来对字符串进行Base64加密。以下是一个简单示例:SELECT UTL_ENCODE.BASE64_ENCODE('Hello, World!
oracle中base64加密的方法是什么
2024-05-21

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录