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

來源:互聯網
上載者:User

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 選項沒有輸出字串結尾的' '換行字元,因此字串"snailwarrior"精確的base64編碼是"c25haWx3YXJyaW9y",可以用PHP函數來檢驗哦。檔案方式等進行的"snailwarrior"字串編碼都帶入了對' '的編碼,因此,不小心就會發生莫名的編碼錯誤哦。

  4、Base64解碼

  [root@pps ~]# echo -n "c25haWx3YXJyaW9y" | base64 -d

  snailwarrior

  [root@pps ~]#

摘自:http://www.soft6.com/tech/13/134492.html 並做適當調整

  

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.