详解Linux Base64

Base64编码在电子邮件中很常见,Foxmail、Outlook等邮件用户代理发邮件时进行SMTP验证,就是输入base64编码格式的用户名和密码进行验证的,而邮件的主体内容和附件都很普遍的使用base64编码进行传输。

Base64命令使用实例

这是测试文件file,内容就只有一行字符串”snailwarrior”。

[root@pps ~]# cat file
snailwarrior12

第一种,给文件file进行base64编码,并打印到标准输出,如下

[root@pps ~]# base64 file
c25haWx3YXJyaW9yCg==12

也可以这样:

[root@pps ~]# cat file | base64
c25haWx3YXJyaW9yCg==12

第二种,从标准输入读取文件内容,base64编码并打印到标准输出

[root@pps ~]# base64
snailwarrior
c25haWx3YXJyaW9yCg==123

我是输入snailwarrior,回车,然后按Ctrl+D结束文件输入的。

【注意】如果我不输入回车,连续输入两次Ctrl+D,看看效果如何,如下,

[root@pps ~]# base64
snailwarriorc25haWx3YXJyaW9y12

可以看出,编码出来的字符串是:c25haWx3YXJyaW9y

我的神!两种方式编码出来的结果不一样啊!继续往下测试。

第三种,对字符串”snailwarrior”编码,并打印到标准输出,如下

[root@pps ~]# echo "snailwarrior" | base64
c25haWx3YXJyaW9yCg==12

这个结果跟前面”cat file”和输入snailwarrior按回车再按Ctrl+D的情况是一样的。为什么不按回车直按两次Ctrl+D的结果不一样呢?我们再来看看下面这个例子:

[root@pps ~]# echo -n "snailwarrior" | base64
c25haWx3YXJyaW9y12

你是不是惊讶的发现“缘由”了呢?

echo -n 选项没有输出字符串结尾的’\n’换行字符,因此字符串”snailwarrior”精确的base64编码是”c25haWx3YXJyaW9y”,可以用PHP函数来检验哦。文件方式等进行的”snailwarrior”字符串编码都带入了对’\n’的编码,因此,不小心就会发生莫名的编码错误哦。

base64的Java代码如下,

String pwd = "test";
byte[] enbytes = Base64.encodeBase64(pwd.getBytes());
log.info(">> {}",new String(enbytes));


byte[] debytes = Base64.decodeBase64(new String("eyJuYW1lIjoi5byg5LiJIn0K"));
log.info(">> {}",new String(debytes));1234567

需要通过maven依相应的jar文件,如下,


  
       
   
    commons-codec
       
   
    commons-codec
   
  

原创文章,作者:晴川运维,如若转载,请注明出处:https://baike.qcidc.com/13299.html

(0)
晴川运维晴川运维
上一篇 2025年9月21日
下一篇 2025年9月21日

相关推荐

  • Linux下生成高强度密码具体方法

    现在信息泄露越来越严重,而强大的密码是防止个人敏感信息泄露的第一步,本篇文章重点为大家讲解一下Linux下生成高强度密码具体方法。 1. 在 Linux 中使用 OpenSSL 来…

    Linux系统 2025年10月20日
  • Linux中搭建Docker私有仓库

    使用Docker私有仓库可以帮助我们节省网络带宽,针对于每个镜像不用每个人都去中央仓库上面去下载,只需要从私有仓库中下载即可,还可以提供镜像资源利用,针对于公司内部使用的镜像,推送…

    Linux系统 2025年9月20日
  • RHEL7 or CentOS7重设系统密码

    我们有时会忘记linux系统的root密码,有的人不会重置密码只能重置系统了,本篇文章重点为大家讲解一下RHEL7 or CentOS7重设系统密码具体方法。 介绍 目的 在 RH…

    Linux系统 2025年6月8日
  • Shell test命令(Shell [])详解,附带所有选项及说明

    test 是 Shell 内置命令,用来检测某个条件是否成立。test 通常和 if 语句一起使用,并且大部分 if 语句都依赖 test。 test 命令有很多选项,可以进行数值…

    Linux系统 2025年6月8日
  • Acme.sh 申请 https 证书具体方法

    HTTPS 并不是一个新鲜协议,Google 很早就开始启用了,初衷是为了保证数据安全。 近两年,Google、Baidu、Facebook 等这样的互联网巨头,不谋而合地开始大力…

    Linux系统 2025年6月8日
  • CentOS中使用RPM包安装redis具体方法

    Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部 分场合可以对关系数据库起到很好的补充作…

    Linux系统 2025年6月8日
  • 部署路由器 OSPF 动态路由具体方法

    路由协议OSPF全称为Open Shortest Path First,也就开放的最短路径优先协议,因为OSPF是由IETF开发的,它的使用不受任何厂商限制,所有人都可以使用,所以…

    Linux系统 2025年10月24日
  • Linux grep命令详解:查找文件内容

    很多时候,我们并不需要列出文件的全部内容,而是从文件中找到包含指定信息的那些行,要实现这个目的,可以使用 grep 命令。 grep 命令作为 Linux 文本处理三剑客的一员,另…

    Linux系统 2025年10月11日
  • 搭建Kubernetes具体流程(上)

    Kubernetes(k8s)是自动化容器操作的开源平台,这些操作包括部署,调度和节点集群间扩展。如果你曾经用过Docker容器技术部署容器,那么可以将Docker看成Kubern…

    Linux系统 2025年6月14日
  • Linux alias命令使用方法

    Linux系统提供了一个有用的工具叫alias,可以让我们将一些需要频繁使用的但又过于冗长的命令设置一个别名,以后只需输入一个简短的别名就可以达到同样的作用,下面为大家详细讲解一下…

    Linux系统 2025年10月10日

发表回复

登录后才能评论