base64原理及命令使用

由于想在Linux上从迅雷里下东西,所以遇到了base64,顺便了解了一下。简单来说(不一定准确):base64是一个可以将二进制数据转化成[A-Za-z0-9+/]的字符串,常用于网页、邮件。

通常一个网页下载下来,离线打开,你可能会发现网页上的图片还在。但你搜遍整个网页都没有打到对应的二进制数据。原来是图片数据被转换成文本的形式。

base64的原理是将每3个字节用4个可打印的字符来表示。网上有很多原理的介绍:维基百科

我自己用自己的话来描述一下这个过程:每次取3个字节出来,组成一个24bits的数据(每个字节8bits*3=24bits)。再将这24bits的数据以6bits为一组分隔成4个组。每一组的数值范围为0~63。然后用"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"这64个字符来表示这个值。当然,按3个字节拆分,到最后来肯定会有不足3个的情况,那就填0再计算。在编码完成之后,用“=”的个数来表示最后是剩下的是一个字节还是两个字节或是没有剩。

原理介绍到这里,下面讲一下base64命令的使用方法:

加密字串:

$ echo -n "Hi, I am Hevake Lee" | base64

加密文件

$ base64 photo.jpg

命令执行完成后会在标准输出打印加密后的字串。如果需要保存,你是可以重定位到文件的。如:

$ base64 photo.jpg > photo.jpg.b64

解密方法与加密方法是一样的,只不过base64加一个'-d'参数表示解码。

时间: 2025-01-29 21:00:31

base64原理及命令使用的相关文章

组播的DR的工作原理与故障排查思路详解

1, 问题描述: 我们一台CPE MP1803路由器作为客户的CE路由器,PC发了IGMP report以后,我们路由器会在IGMP表项里写上该组播组,但是客户那里说上游的Huawei PE设备没有收到我们设备的PIM JOIN报文而最终不能将组播流量引下来. 经过排查,发现客户在同一个局域网中有多个CPE, 而且我们的MP1803不是DR. 所以这就是为什么客户开了debug以后不能在我们路由器的上游接口抓到PIM JOIN报文误认为是我们路由器的问题. 当时建议客户把局域网断开,然后直接用P

iOS 中 Base64 编解码分类实现

iOS 中 Base64 编解码分类实现 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 再补充:由此可见,当一个人极力地想要说明自已,表述清楚自已的想法的时侯,最后会被自已搞得更加不清楚了,从

JavaScript实现Base64编码转换_javascript技巧

简介 Base64是一种基于64个可打印字符来表示二进制数据的表示方法.由于2的6次方等于64,所以每6个比特为一个单元,对应某个可打印字符.三个字节有24个比特,对应于4个Base64单元,即3个字节需要用4个可打印字符来表示.它可用来作为电子邮件的传输编码.在Base64中的可打印字符包括字母A-Z.a-z.数字0-9,这样共有62个字符,此外的两个可打印符号在不同的系统中而不同,一般为+和/. 转换原理 Base64的直接数据源是二进制序列(Binary Sequence).当然,你也可以

一天一个shell命令 linux文本内容操作系列-awk命令详解_linux shell

简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理. awk有3个不同版本: awk.nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本. awk其名称得自于它的创始人 Alfred Aho .Peter Weinberger 和 Brian Kernighan 姓氏的首个字母.实际上 AWK

linux 下的yum命令详解_Linux

yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载.安装.yum提供了查找.安装.删除某一个.一组甚至全部软件包的命令,而且命令简洁而又好记. yum的命令形式一般是如下:yum [options] [command] [package ...] 其中的[opt

如何绕过应用白名单和受限的 PowerShell?

本文讲的是如何绕过应用白名单和受限的 PowerShell?, 最近几年,关于如何绕过应用程序白名单的研究非常火热,Casey Smith(@subtee)和Matt Graeber(@mattifestation)都有过这方面的研究,他们最新研究成果就是"应用程序白名单必须被锁定,以避免受信任的应用程序被攻击者实施代码注入",不过他们的研究成果只是在Windows 7和8.1中可行,但在Windows 10的运行环境中这种办法却不可行,在Windows 10中激活Powershell

jsp url 参数加密传送的终极解决方案

一般我们在form提交时不要担心我们的参数会显示给用户看.   我们主要解决的是以get方式进行url参数传递的问题,如:   http://xxx.xxx.xxx.xxx/xxx/xxx.do?pId=101&imageName=processimage.jpg这样的url pId=101&imageName=processimage.jgp这样的参数如何进行加密.   我们采用:   java.net.URLEncoder.encode(Base64编码(加密字串), StringCo

内外网同时访问以及拓扑图

内外网同时访问技术(全/终极篇) 本文转载自荷风的日志<内外网同时访问技术(全/终极篇)> (注:此文已发表在国家级知名杂志<网管员世界>2011年3,4期合刊上.) 随着互联网的兴起,很多单位/企业都建立了自己的网络(简称内网),同时也能够访问互联网(简称外网)了.但是由于企业/单位领导担心安全问题,或是本身的技术问题,有好多单位/企业并不能同时访问内外网,而是频繁的换网线或者换IP地址在切换内外网之间切换,非常的不方便.其实,不必如此麻烦!同时访问内外网并非难事. 要同时访问内

工具解析篇:高效利用JS加载.Net程序

本文讲的是工具解析篇:高效利用JS加载.Net程序, 0x00 前言 最近James Forshaw开源了一个工具DotNetToJScript,能够利用JS/Vbs脚本加载.Net程序,很有趣.  Casey Smith和Cn33liz都对此做了进一步研究,开源了他们的利用代码.  本文将要对该技术作系统整理,帮助大家更好的认识. 0x01 简介 本文将要介绍以下内容: 1. DotNetToJScript编译方法 2. DotNetToJScript使用方法 3. 利用JS/Vbs执行she