Base64加密原理

Base64的加密与解密 最近对网络安全的兴趣猛涨,闲着没逝,给大家整一期Base64的加密与解密。 阅读详情

Base64加密

由来

为什么会有Base64编码呢?因为有些网络传送渠道并不支持所有的字节,例如传统的邮件只支持可见字符的传送,
像ASCII码的控制字符就不能通过邮件传送。这样用途就受到了很大的限制,比如图片二进制流的每个字节不可能全部是可见字符,所以就传送不了。
最好的方法就是在不改变传统协议的情况下,做一种扩展方案来支持二进制文件的传送。把不可打印的字符也能用可打印字符来表示,问题就解决了。
Base64编码应运而生,Base64就是一种基于64个可打印字符来表示二进制数据的表示方法。

原理

下面是Base64的编码表,字符选用了A-Z、a-z、0-9、+、/64个可打印字符。
数值代表字符的索引,这个是标准Base64协议规定的,不能更改。
64个字符用6个bit位就可以全部表示,一个字节有8个bit位,剩下两个bit就浪费掉了,这样就不得不牺牲一部分空间了。
这里需要弄明白的就是一个Base64字符是8个bit,但是有效部分只有右边的6个bit,左边两个永远是0。

Image

因为Base64是6个bit那么,怎么来表示传统字符呢?那就是用4个Base64字符来表示3个传统字符。38=46嘛,这样就正好了。

下面来看一个例子:Man是三个字符,一共24个bit,用4个Base64字符来凑齐24个有效位。
红框表示的是对应的Base64,6个有效位转化成相应的索引值再对应Base64字符表,
查出Man对应的Base64字符是TWFU。说到这里有个原则不知道你发现了没有,要转换成Base64的最小单位就是三个字节,
对一个字符串来说每次都是三个字节三个字节的转换,对应的是Base64的四个字节。这个搞清楚了其实就差不多了。

Image

正是因为这,所以想要转换成Base64最少要三个字节才可以,转换出来的Base64最少是4个字节,但是如果我要转换的字节不够3个怎么办?比如我想对字符A进行Base64加密。,A对应的第二个Base64的二进制位只有两个,把后边的四个补0就是了。
所以A对应的Base64字符就是QQ。上边已经说过了,原则是Base64字符的最小单位是四个字符一组,那这才两个字符,后边补两个"=“吧。
其实不用”=“也不耽误解码,之所以用”=“,可能是考虑到多段编码后的Base64字符串拼起来也不会引起混淆。
由此可见 Base64字符串只可能最后出现一个或两个”=“,中间是不可能出现”="的。下图中字符"BC"的编码过程也是一样的。

Image

总结

Base64编码是从二进制到字符的过程,像一些中文字符用不同的编码转为二进制时,产生的二进制是不一样的,
所以最终产生的Base64字符也不一样。例如上网对应utf-8格式的Base64编码是5LiK572R,对应GB2312格式的Base64编码是yc/N+A==

​

  • Good Luck!
密码学:一文看懂Base64算法 Base64常常在我们开发中出现,我们可能只知道它是一串乱码(看不懂的符号),知道有时候知道我们需要把一些数据进行base64编码,有时候需要进行Base64解码。但是却不知道它的作用是什么?它存在的意义是什么?还有它是如何生成的?如何编码和解码?上述的疑问相信在你读完本篇文章之后烟消云散。下面开始正文。Base64是什么?它和加密解密操作有什么关系吗?没错,这就是经过Base64编码后的字符串。对它解码后,我们获得以下内容点个关注,是对我持续创作的最大的鼓励! 阅读详情

相关推荐

常见的加密算法原理与实现:base64编码(加密)

系列一:base64加密前沿一、base64的缘起二、base64的原理三、在Python中的实现二级目录三级目录 前沿 一、base64的缘起 二、base64的原理 三、在Python中的实现 二级目录 三级目录

仙路尽头谁为峰 3891

Base64加密解密

解决:btoa 不支持 Unicode 字符编码的问题编码时,先用 encodeURIComponent 对字符串进行编码,再进行 btoa 进行 Base64 编码解码时,先用 atob 对 Base64 编码的串进行解码,再用 decodeURIComponent 对字符串进行解码。注意:不适用于带中文解密,即window.btoa 与 window.atob 不支持中文,且 IE9 以下不支持atob、btoa。2、window.atob() 函数用来解码被 base64 编码过的数据。

Jin的随手笔记 3万+

深信服aCloud虚拟存储VS3.0实战:从数据分片到仲裁机制的全流程解析

本文深度解析了深信服aCloud虚拟存储VS3.0的核心架构与生产级实践。从数据分片、条带化写入、多副本机制到智能缓存分层,详细阐述了其如何实现高性能与高可靠性的平衡。同时,深入剖析了动态均衡、平滑扩容以及故障恢复与仲裁机制,为运维人员和技术决策者提供了在超融合基础架构(HCI)中部署和管理虚拟存储的实战指南。

net55的博客 588

BASE64加密解密(两种方式)

严格来说BASE64的加密解密是指编码格式,而非加密算法我们暂且将它归为加解密方式的一种对于Base64的使用有两种方式:第一种直接使用sun.misc包下的BASE64工具第二种是使用org.springframework包下的Base64Utils工具相较于第一种,第二种更为方便。对于Base64的使用,仅限于简单加密需求的编码解码对于安全性较高的需求尽量使用更为安全的加密解密方式。

感谢阅读 1万+

RJ45以太网接口EMC设计方案

RJ45以太网接口EMC设计方案 一、 接口概述 RJ45以太网接口是目前应用最广泛的通讯设备接口,以太网口的电磁兼容性能关系到通讯设备的稳定运行。赛盛技术应用电磁兼容设计平台(EDP)软件从接口原理图、结构设计,线缆设计三个方面来设计以太网口的EMC设计方案。 二、 接口电路 原理图的EMC设计 百兆以太网接口2KV防雷滤波设计 图1 百兆以太网接口2KV防雷滤波设计 接口电路设计概述: 本方案从EMC原理上,进行了相关的抑制干扰和抗敏感度的设计;从设计层次解决EMC问题;同时此电路兼容了百兆以太网接

兰陵笑笑生SD的博客 1万+

DRM驱动架构浅析-上(DRM基础概要与U-Boot阶段驱动解析)

本文主要探讨了Rockchip平台的DRM显示驱动架构及其在U-Boot阶段的实现。

一路寒风身如絮,命海沉浮客独行 1765

base64加密原理

今天面试被问到以前的项目有没有用到网络传输加密,当时脑袋抽风没想起来直接说了没有。回来后看书看到了base64几个字,顿时醒悟了过来。 Shit!明明最近的项目就用到了base64方法加密的,只是做的比较久远了,后面又没怎么改动过,就把它忽略了。既然这样,那就白纸黑字记下来吧,以免下次脑袋抽风。 首先,base64编码的原理是先将源文件以标准字节(byte)为单位转化成二进制,

杨青峰的博客 7063

什么是无人机巡检?如何实现无人机自动巡检?

复亚智能的无人机自动巡检系统通过高度自动化的技术,实现了无人机的高效巡检作业。无人机自动机场支持无人机的自动起降和电池更换,自动飞行算法确保无人机在复杂环境中的精准飞行和拍摄,而云端识别诊断和AI感知算法平台则实现图像的实时传输和智能分析。复亚智能,作为无人机技术的创新者和推动者,致力于开发先进的无人机自动巡检解决方案,助力各行各业实现智能化、自动化的巡检工作,引领智能巡检的未来。利用人工智能和机器学习算法,无人机可以被训练来识别特定的模式和异常,如结构损坏、热泄漏等,从而提高巡检的准确性和效率。

foiadrone的博客 2843

base64加密原理详解

base64加密原理详解          声明:本文是在看了他人总结,并摘抄大部分图文,和少量自己的总结写成          原作者地址链接:Base64算法原理       Base64编码,是我们程序开发中经常使用到的编码方法。它是一种基于用64个可打印字符来表示二进制数据的表示方法。它通常用作存储、传输一些二进制数据编码方法!也是MIME(多用途互联网邮件扩展,主要用作电子邮件标准

小白 4万+

YOLOv11改进 | 融合改进篇 | 利用尺度统一检测头DynamicHead融合P2增加小目标检测层(让小目标无所遁形)

本文给大家带来的最新改进机制是针对性的改进,针对于小目标检测增加P2层针对于大目标检测增加P6层利用DynamicHead(原版本一比一复现,全网独一份,不同于网上魔改版本)进行检测,其中我们增加P2层其拥有更高的分辨率,这使得模型能够更好地捕捉到小尺寸目标的细节。我们增加P6层是一个较低分辨率但具有更大感受野的特征层。对于大尺寸目标,这意味着模型可以更有效地捕捉到整体的结构信息。在这些的基础上我们配合DynamicHead可以使模型根据不同尺寸的目标动态调整其检测策略,进一步提升模型的精度。

Snu77的博客 3951

基于AC算法的图像显著性检测及Matlab代码实现

以上是基于AC算法的图像显著性检测的Matlab代码实现。图像显著性检测是计算机视觉领域的一个重要任务,其目标是确定图像中最具有显著性的区域,即吸引人眼注意力的区域。图像显著性检测是计算机视觉领域的一个重要任务,其目标是确定图像中最具有显著性的区域,即吸引人眼注意力的区域。AC算法的原理基于人眼视觉系统的特性,人眼在观察图像时通常会先关注图像中的显著性区域,然后才会注意到其他细节。AC算法的原理基于人眼视觉系统的特性,人眼在观察图像时通常会先关注图像中的显著性区域,然后才会注意到其他细节。

TechPulseZ的博客 438

Base64 加密算法原理

Base64 加密算法原理 Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。 因为在内存中每个字节占8位,即 1 byte = 8 bit,所有的数据都可以先转成ascii码,然后将对应的ascii码转为8位长度的二进制数据,比如 s 对应 115-> 01110011。 而base64做的就是将所有的二进...

一个想写小说的程序员 3293

基于 Arduino 的鱼缸水质检测控制系统设计

本系统通过多传感器实时采集鱼缸水质参数(pH 值、温度、溶解氧、浊度),经 Arduino 主控芯片处理后,驱动执行模块自动调节水质,并通过显示模块实时展示数据。系统具备阈值报警、自动换水、温度调节、增氧等功能,适用于家庭或小型水族箱的水质智能管理。本设计提供了低成本、易扩展的鱼缸水质管理方案,适用于家庭水族箱或小型水产养殖场景,可根据实际需求调整传感器类型和控制逻辑。注:本设计如有疑问需要解惑可直接私信本人,看我个人简介。

weixin_42300449的博客 1086

Base64加密原理——加密算法(1)

Base64从本质来说,其实并不是加密算法,只是一种编码方式而已,Base64的"加解密"也不叫加密解密,而是编码解码,但是现在一般都把它归为加密算法。 一、Base64简介 Base64编码将二进制数据编码为可现实的字母和数字,用于传送图形、声音和传真等非文本数据,常用于MIME电子邮件格式中。其使用含有65个字符和ASCLL字符集(第65个字符为"=",用于对字符串进行特殊处理),并用6个进制...

weixin_43742894的博客 2788

Sigrity SPEED2000 TDR TDT Simulation模式如何进行时域阻抗仿真分析操作指导-差分信号

Sigrity SPEED2000 TDR TDT Simulation模式如何进行时域阻抗仿真分析操作指导-单端信号详细介绍了单端信号如何进行TDR仿真分析,下面介绍如何对差分信号进行TDR分析,还是以下图为例进行分析。Impedance是时域阻抗曲线,也是最主要的观测指标,注意:impedance曲线的时间刻度不是延时,延时=时间刻度/2,因为TDR测量的是用一来一回的原理去测量的。Use Lossy peeling 默认不勾选,勾选的话代表同时仿真无损和有损方案,不勾选代表仅仿真有损方案。

weixin_54787054的博客 857

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

base64的加密原理是什么

Base64不是一种加密算法,而是一种编码方案。它的主要目的是为了使二进制数据能够以文本格式安全地存储或传输,特别是在那些只能处理文本的系统中。这种编码方案可以确保二进制数据在文本格式下的完整性和可读性,但不提供任何加密或安全保护。任何人都可以使用Base64解码工具轻松地解码Base64编码的数据。

m0_57236802的博客 746

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

MD5 与 Base64一起使用 加密,计算原理

使用Java处理,对字符串 进行MD5与Base64 同时加密 使用Java处理,得到字符串或文件的MD5的值

sun0322 2万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

[转]Base64加密原理及代码实现

Base64是一种加料置位加密法,那为什么叫base64呢?因为无论明文是什么(比如汉字,特殊符号等),加密后的密文都只会变成字母A-Z、a-z和0-9 和+和/这64个字符,被他加密体后积一般会变成原来的4/3。 Base64的标准在RFC2045里的24页可以看到。 http://wenku.baidu.com/view/bd567523aaea998fcc220e8e.html

xiexiangyu92的博客 464

java base64 原理_Java base64的加密过程解读

1、为什么要使用Base 64Base 64主要用途不是加密,而是把一些二进制数转成普通字符,方便在网络上传输。由于一些二进制字符在传输协议中属于控制字符,不能直接传送,所以需要转换一下才可以。由于某些系统中只能使用ASCII字符,Base64就是用来将非ASCII字符的数据转换成ASCII字符的一种方法,Base64特别适合在http,mime协议下快速传输数据。比如网络中图片的传输。Base...

weixin_33148993的博客 320

java加密解密代码_base64位加密解密原理及js代码实现

base64位加密解密原理及js代码实现在网上找了很多关于Base64加密解密的原理以一个比较通俗易懂的方式理解整理了一下大致原理如下 先上base64对照表#加密#1:将明文对照以acsii码表转换成一个8位二进制的数#2:将转换后的数据已每次取六位依次取出来转换成十进制#3:将转换出来的十进制数对照Base64对应表转换成字符来个实例 如加密 asd加密后的结果即YWJz 上面的加密是3个字母...

weixin_39653311的博客 331

数据MD5、base64、AES、RSA加密原理

(一)、MD5和base64加密 ** MD5简介** MD5是一个安全的哈希算法,输入两个不同的明文不会得到相同的输出值,根据输出值,不能得到原始的明文,即其过程不可逆; MD5有以下两个最主要的特性。 加密的不可逆性,只能够加密,不能够解密。 任意长度的明文经过加密后长度都是固定的,长度为16进制32位。 它还有以下几种特点 容易计算:根据原数据计算出MD5很容易 抗修改性:MD5对...

u011460876的专栏 1322

base64加密原理代码实现

/*Conversion.java*/import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; /** * @创建者 优快云_LQR * @创建时间 2016-5-19 下午9:06:43 * @描述 base64加密原理代码实现 */ pu

GitLqr的博客 719
上一篇: Java实现Js crypto-js加密
下一篇: JAVA Swing 系统托盘菜单实现 JPopupMenu + JDialog 取代 PopupMenu
和月明
博客等级 码龄6年 214粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值