版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。[url]http://snailwarrior.blog.51cto.com/680306/142472[/url]
【小蜗牛闲情之作
Base64编码在电子邮件中很常见,Foxmail、Outlook等邮件用户代理发邮件时进行SMTP验证,就是输入base64编码格式的用户名和密码进行验证的,而邮件的主体内容和附件都很普遍的使用base64编码进行传输。
在使用telnet工具测试发邮件的时候,如果遇到需要验证情况,实用的base64编码工具就成为必要了。我在另一篇文章里谈到可以使用PHP函数来实现,这里介绍更实用的Linux工具:base64
RHEL5系统的base64工具是coreutils安装包里的,一般Linux系统都已安装。下面举一些实例来说说如何使用base64,以及相关的注意事项。
这是测试文件file,内容就只有一行字符串"snailwarrior"。
[root@pps ~]# cat file
snailwarrior
1、给文件file进行base64编码,并打印到标准输出
[root@pps ~]# base64 file
c25haWx3YXJyaW9yCg==
也可以这样:
[root@pps ~]# cat file | base64
c25haWx3YXJyaW9yCg==
2、从标准输入读取文件内容,base64编码并打印到标准输出
[root@pps ~]# base64
snailwarrior
c25haWx3YXJyaW9yCg==
我是输入snailwarrior,回车,然后按Ctrl+D结束文件输入的。
【注意】如果我不输入回车,连续输入两次Ctrl+D,看看效果如何:
[root@pps ~]# base64
snailwarriorc25haWx3YXJyaW9y
可以看出,编码出来的字符串是:c25haWx3YXJyaW9y
我的神!两种方式编码出来的结果不一样啊!继续往下测试。
3、对字符串"snailwarrior"编码,并打印到标准输出
[root@pps ~]# echo "snailwarrior" | base64
c25haWx3YXJyaW9yCg==
这个结果跟前面"cat file"和输入snailwarrior按回车再按Ctrl+D的情况是一样的。为什么不按回车直按两次Ctrl+D的结果不一样呢?我们再来看看下面这个例子:
[root@pps ~]# echo -n "snailwarrior" | base64
c25haWx3YXJyaW9y
你是不是惊讶的发现“缘由”了呢?
echo -n 选项没有输出字符串结尾的'\n'换行字符,因此字符串"snailwarrior"精确的base64编码是"c25haWx3YXJyaW9y",可以用PHP函数来检验哦。文件方式等进行的"snailwarrior"字符串编码都带入了对'\n'的编码,因此,不小心就会发生莫名的编码错误哦。
4、Base64解码
[root@pps ~]# echo "snailwarrior" | base64 | base64 -d
snailwarrior
base64: invalid input
[root@pps ~]# echo -n "snailwarrior" | base64 | base64 -d
snailwarriorbase64: invalid input
 
【注意】RHEL5自带的base64工具有BUG,base64解码时莫名出错:base64: invalid input。我们可以在这里下载一个base64源码包自己编译:
[url]http://www.fourmilab.ch/webtools/base64/base64-1.5.tar.gz[/url]
我测试过没问题:
[root@pps base64-1.5]# echo "snailwarrior" | ./base64  | ./base64 -d
snailwarrior
[root@pps base64-1.5]# echo -n "snailwarrior" | ./base64  | ./base64 -d
snailwarrior[root@pps base64-1.5]#

转载于:https://blog.51cto.com/verdureorange/143412

Linux下base64命令工具的使用相关推荐

  1. Linux下C++开发工具介绍

    概述     就C++开发工具而言,与Windows下微软(VC, VS2005等)一统天下相比,Linux/Unix下C++开发,可谓五花八门,各式各样.Emacs, vi, eclipse, an ...

  2. Linux查看WAS的jvm信息,linux 下使用命令查看jvm信息

    java程序员除了编写业务代码之外,特别是项目上线之后,更需要关注的是系统的性能表现,这个时候就需要了解一下jvm的性能表现了,可以借助于java虚拟机自带的一些分析工具,主要有三个常用的命令. 1. ...

  3. linux下dd命令详解

    linux下dd命令详解    名称: dd 使用权限: 所有使用者dd 这个指令在 manual 里的定义是 convert and copy a file 使用方式: dd [option] 如果 ...

  4. linux vi de ce,linux下vi命令Vi命令集

    linux下vi命令Vi命令集 熟悉VI 是学习UNIX 系统的一个关口 (feming) vi 是visual edit 的缩写 文本编辑器是所有计算机系统中最常用的一种工具.UNIX下的编辑器有e ...

  5. linux当前时间 按格式化,Linux下date命令,格式化输出,时间设置

    date命令的帮助信息 [root@localhost source]# date --help 用法:date [选项]... [+格式] 或:date [-u|--utc|--universal] ...

  6. Linux下的parted工具的使用 GPT分区安装系统

    安装系统是安装前时候ctrl+atl+F2 fdisk -l parted select /dev/sdb mklabel msdos # 将GPT磁盘格式化为MBR磁盘 对大硬盘进行分区 xfs 和 ...

  7. Linux下查找命令

    转载自  Linux下查找命令 一.Linux查找文件的相关命令 常 用 命 令 简要中文说明 程序所在目录 more 分页显示一个文件或任何输出结果 /bin less 分页显示一个文件并且可以回头 ...

  8. Linux下暴力破解工具Hydra详解

    Linux下暴力破解工具Hydra详解 一.简介 Number one of the biggest security holes are passwords, as every password s ...

  9. Linux下的分区工具

    Linux下的分区工具 来源:http://www.cnblogs.com/rootq/articles/1487201.html [root@localhost gxlinux]# df -Th # ...

最新文章

  1. Android Studio 启动模拟器出现“Timed out after 300seconds waiting for emulator to come online“解决方案
  2. centos7下安装mariadb
  3. SAP BW增量队列深入研究
  4. 老男孩教育参观云计算公司
  5. How is syntax error in Vue detected - Vue的语法错误检查机制介绍
  6. 从CLR GC到CoreCLR GC看.NET Core对云原生的支持
  7. java编程语言的常用快捷方式
  8. IDEA JetBrains Mono 字体安装
  9. 文件系统FAT32、NTFS、exFAT的对比
  10. 英语论文写作笔记一则
  11. destoon标签调用技巧
  12. grafana+prometheus监控Springboot服务
  13. 图像处理之3d算法----2d转3d算法介绍
  14. 从拼多多解析社交电商
  15. 测坐标天幕靶软件设计_测速天幕靶检定装置与检定方法
  16. ubuntu占用空间清理
  17. c++中绝对值的函数
  18. python 最简单的方法实现一个斐波那契数列
  19. zabbix4.0配置钉钉机器人告警详细教程
  20. 机器学习基本概念知识汇

热门文章

  1. plsql窗口文件怎么找回_电脑文件丢失怎么找回?知道原因和方法很关键
  2. 计算机网络技术与计算机应用技术,计算机网络技术和计算机应用技术.pdf
  3. 神策数据丨IPTV/OTT 精细化运营体系构建指南
  4. 活动 | 5 位大咖,手把手教你玩转数据驱动精细化运营
  5. 听说别人都在送小黄车月卡?神策数据送两个月!
  6. DVWA系列之17 CSRF攻击介绍与实施
  7. [javaSE] 多线程(守护线程)
  8. 第二阶段—个人工作总结03
  9. XStream xml与javabean之间的互转
  10. window 服务(一)