您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“Linux中Base64的示例分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Linux中Base64的示例分析”這篇文章吧。
Base64編碼在電子郵件中很常見,Foxmail、Outlook等郵件用戶代理發郵件時進行SMTP驗證,就是輸入base64編碼格式的用戶名和密碼進行驗證的,而郵件的主體內容和附件都很普遍的使用base64編碼進行傳輸。
這是測試文件file,內容就只有一行字符串”snailwarrior”。
[root@pps ~]# cat filesnailwarrior12
第一種,給文件file進行base64編碼,并打印到標準輸出,如下
[root@pps ~]# base64 filec25haWx3YXJyaW9yCg==12
也可以這樣:
[root@pps ~]# cat file | base64c25haWx3YXJyaW9yCg==12
第二種,從標準輸入讀取文件內容,base64編碼并打印到標準輸出
[root@pps ~]# base64snailwarrior c25haWx3YXJyaW9yCg==123
我是輸入snailwarrior,回車,然后按Ctrl+D結束文件輸入的。
【注意】如果我不輸入回車,連續輸入兩次Ctrl+D,看看效果如何,如下,
[root@pps ~]# base64snailwarriorc25haWx3YXJyaW9y12
可以看出,編碼出來的字符串是:c25haWx3YXJyaW9y
我的神!兩種方式編碼出來的結果不一樣啊!繼續往下測試。
第三種,對字符串”snailwarrior”編碼,并打印到標準輸出,如下
[root@pps ~]# echo "snailwarrior" | base64c25haWx3YXJyaW9yCg==12
這個結果跟前面”cat file”和輸入snailwarrior按回車再按Ctrl+D的情況是一樣的。為什么不按回車直按兩次Ctrl+D的結果不一樣呢?我們再來看看下面這個例子:
[root@pps ~]# echo -n "snailwarrior" | base64c25haWx3YXJyaW9y12
你是不是驚訝的發現“緣由”了呢?
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
以上是“Linux中Base64的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。