4月 13, 2008

【作品】Base64 編碼/解碼器

@
  由於Firefox網頁顯示快,擴充性又高(數不清的外掛),我本人算是Firefox的愛好者。奇怪了,這隻程式跟Firefox又有什麼關係呢?

  說老實話,其實可以說一點關係都沒有。不過當初,我在亂翻Firefox的資料夾時,發現Firefox的Search Plugins都是用XML寫的。

  我興致一發,就開始嘗試分析XML的架構。後來,在Image的標籤中,看到了以下的"未知文字":

R0lGODlhEAAQAJECAP8AAAAAAP///wAAACH5BAEAAAIALAAAAAAQA
BAAAAIplI+py+0NogQuyBDEnEd2kHkfFWUamEzmpZSfmaIHPHrRgu
Um/fT+UwAAOw==


  理論上,這應該是Search Plugins旁的小ICON。但是,對於這一長串東西,實在看不出是什麼。後來一問之下,才發現這是叫做Base64的編碼法。

  後來,就先把做Search Plugins的事丟在一旁。參考Wikipedia條目的編碼原理,試著把Base64的編碼/解碼程式寫出來,實現它。


程式說明

  這支程式只能使用命令提示工具執行。如下圖:



  程式的預設動作為編碼(Encode)。假如想改變預設動作為解碼(Decode),須輸入指令"/decode"。同理,若是想改回編碼,則須輸入指令"/encode"。

  你也可以一次幫很多檔案作編碼動作。只要圈選所有欲編碼的檔案,直接拖曳到程式圖示就可以了(由於一開始的預設動作都是編碼,因此無法做批次解碼)。

  此外,只有副檔名為.ba64的檔案能進行解碼。


程式下載

  

2 回覆:

匿名 提到...

可以將exe改成dll,且可以直接用字串型態來做傳送,而非檔案嗎?

小參 提到...

唔....
我沒有編過 dll 檔, 不曉得能不能改出來呢

張貼留言