新聞中心
Base64編碼在電子郵件中很常見,F(xiàn)oxmail、Outlook等郵件用戶代理發(fā)郵件時進行SMTP驗證,就是輸入base64編碼格式的用戶名和密碼進行驗證的,而郵件的主體內(nèi)容和附件都很普遍的使用base64編碼進行傳輸。

創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務領域包括:網(wǎng)站建設、網(wǎng)站設計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的霍山網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!
Base64命令使用實例
這是測試文件file,內(nèi)容就只有一行字符串”snailwarrior”。
[root@pps ~]# cat file
snailwarrior12
第一種,給文件file進行base64編碼,并打印到標準輸出,如下
[root@pps ~]# base64 file
c25haWx3YXJyaW9yCg==12
也可以這樣:
[root@pps ~]# cat file | base64
c25haWx3YXJyaW9yCg==12
第二種,從標準輸入讀取文件內(nèi)容,base64編碼并打印到標準輸出
[root@pps ~]# base64
snailwarrior
c25haWx3YXJyaW9yCg==123
我是輸入snailwarrior,回車,然后按Ctrl+D結(jié)束文件輸入的。
【注意】如果我不輸入回車,連續(xù)輸入兩次Ctrl+D,看看效果如何,如下,
[root@pps ~]# base64
snailwarriorc25haWx3YXJyaW9y12
可以看出,編碼出來的字符串是:c25haWx3YXJyaW9y
我的神!兩種方式編碼出來的結(jié)果不一樣啊!繼續(xù)往下測試。
第三種,對字符串”snailwarrior”編碼,并打印到標準輸出,如下
[root@pps ~]# echo "snailwarrior" | base64
c25haWx3YXJyaW9yCg==12
這個結(jié)果跟前面”cat file”和輸入snailwarrior按回車再按Ctrl+D的情況是一樣的。為什么不按回車直按兩次Ctrl+D的結(jié)果不一樣呢?我們再來看看下面這個例子:
[root@pps ~]# echo -n "snailwarrior" | base64
c25haWx3YXJyaW9y12
你是不是驚訝的發(fā)現(xiàn)“緣由”了呢?
echo -n 選項沒有輸出字符串結(jié)尾的’\n’換行字符,因此字符串”snailwarrior”精確的base64編碼是”c25haWx3YXJyaW9y”,可以用PHP函數(shù)來檢驗哦。文件方式等進行的”snailwarrior”字符串編碼都帶入了對’\n’的編碼,因此,不小心就會發(fā)生莫名的編碼錯誤哦。
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
分享標題:詳解LinuxBase64
標題網(wǎng)址:http://fisionsoft.com.cn/article/cccocge.html


咨詢
建站咨詢
