首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | HR | 镜像
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
搜索中心 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>linux基础>经验技巧>正文

Linux下“base64”命令工具的使用

http://www.oklinux.cn  2009-03-30  小蜗牛技术之家    会员收藏  游客收藏  【 】 
您查看的文章来源于http://www.oklinux.cn

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源码包自己编译:
http://www.fourmilab.ch/webtools/base64/base64-1.5.tar.gz

我测试过没问题:
[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]#


上一篇:杀死Unix操作系统不服管教的进程   下一篇:在Ubuntu系统中使用蓝牙连接手机

收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·在Ubuntu系统中使用蓝牙连接手机
·杀死Unix操作系统不服管教的进程
·DeskHedron:酷炫的3D式虚拟桌面软件
·Linux系统出错提示信息详解
·Ubuntu 服务器上安装启动SSH Server
·Ubuntu利用SWAT管理SAMBA服务器
·Ubuntu内核不能升级解决方案
·Ubuntu操作系统下Gmail邮件通知的实现
·Termcolor —— 用 Python 打出彩色Linux终端信息
·利用vi与Unix系统进行对话
·经验总结:Linux桌面使用技巧集锦
·袁萌:Ubuntu企业应用的虚拟培训
·合理管理进程让其成为Unix系统的守护神
·Linux桌面环境GNOME 2.26光盘刻录真是无处不能
·探索 Linux 通用 SCSI 驱动器
·部署Linux系统之前先回答三个问题
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·Linux系统出错提示信息详解
·DeskHedron:酷炫的3D式虚拟桌面软件
·在Ubuntu系统中使用蓝牙连接手机
·杀死Unix操作系统不服管教的进程
·Ubuntu 服务器上安装启动SSH Server
·Ubuntu利用SWAT管理SAMBA服务器
·Ubuntu内核不能升级解决方案
·Ubuntu操作系统下Gmail邮件通知的实现
·Termcolor —— 用 Python 打出彩色Lin
·利用vi与Unix系统进行对话
·经验总结:Linux桌面使用技巧集锦
·袁萌:Ubuntu企业应用的虚拟培训
  阅读排行
·安装Ubuntu分区的推荐方案及方法
·Linux爱好者入门教程
·Ubuntu下安装苹果MAC风格主题(图)
·新手看招:调试工具GDB基本知识全接触
·Ubuntu 3D桌面特效展示!超绚目(图)
·Ubuntu下安装MP3播放器Audacious
·红旗Linux桌面版6.0SP1发布及下载
·Windows XP虚拟机vmware中安装Linux步
·Linux下安装tar.gz、rpm、tar.bz2软件
·Fedora 9 配置yum源
·Ubuntu 8.04 硬盘安装过程
·Ubuntu看安装Sopcast看网络电视(配图)
·Ubuntu 8.04如何安装之完美硬盘安装法
·从硬盘安装RHEL 5(Red Hat Enterprise
·新手学堂 Ubuntu中安装bin文件
网摘收藏: