栗子現場直播 千篇一栗
有很多簡單的道理,若不是被遺忘,不是察覺不到,就是知易行難。

2012年1月31日 星期二

TODO 2012w05.1

突然改變計劃。

目標:

  • Project Arahabika - User

雖然我早就預見這種情況,眼見大企業一步一步收緊政策,卻怠慢把抗衡的事荒廢,直到現在殺到埋身才懂得緊張。我要為自己沒有做任何事,向大家道歉。

2012年1月30日 星期一

TODO 2012w05

新年假過去,想做的事沒有甚麼好的進展,又遇到不少不快事。

數月前裝修浴室,遇人不淑,很好很強大地滲水,滲到浴室外的地板底部,發水腫脹。為此家人又出現了磨擦。另,好像又得花錢再修,比上次裝修更貴。自己儲來的錢,就這樣為了非己為的人禍而冤枉花掉,不爽。
老實說我覺得裝修前的浴缸還不錯。日本色情遊戲中,有鴛鴦戲水的場面,我好想試好耐。我拍了兩次拖都無試過,浴缸就拆掉,還惹來更多麻煩。所以說,「沒問題的系統不要搞」,是至理名言。

另,剛剛星期天和朋友踏單車。我自問安全第一,不會飛車(慢),平衡好(龜速下保持直線),但橫禍要來就來。隧道上斜,眼見前方有笨蛋,小心翼翼,他上不到停下來,我也得停住了,不防後方冷箭飛來。我被撞得 orz,撞過來的女孩就抱著腳喊痛。幸好有好心人來照顧。
撞車受傷事小,途人冷漠事大。處理事件的時候,某途人喊「唔好阻住條路,撞車大晒」之言,即見人間冷暖。下次再遇上這種人,我會問他是否來自內地(見死不救之事太多)。這種冷漠的人,才是令我極不愉快的真正原因。
轉頭又想想,其實口出惡言的只有一個,有心的途人有很多很多。我不該因為這小小的污點而這麼不快。

說點開心事吧。

前女友結婚了。我真心為她高興。能找到終生伴侶,是福份,亦不簡單,祝他們倆永遠幸福快樂。
例行說說,小弟單身中,處男(不值得自誇),月入二萬多,有穩定職業,不過癖好比較獨特一點。如果我獨特的怪癖能迎合妳獨特的口味,又或者妳有信心令我放棄那獨特的怪癖,歡迎面議。給大家一個機會,共度獨特的人生。

某中學朋友,好像會拿到去美國讀博士的入場票。本來是件好事,不過他有一點猶疑。媽的,可以走的話就快點走,否則我就踢你出去。不要留在香港,做李嘉誠的奴隸。

日本 USB 飛機杯「USBオナホール」終於找到了網上郵購的方法。現在等貨到,希望對方能好好把貨包好。如果給家人看到本物,保證發生慘事。如無意外,到貨後我會拍開箱文。

而受浴室滲水事件啟發,眼見辛苦錢冤枉去,深感積穀不能防飢,所以我決定買下「水無灯里 60cm ドールフィギュア」。之前的 blog 提過了,不需再說。

最後,請未做過「栗子現場直播問卷 2012」的網友,能花點時間去做一下。只有十題 MC 加 comment,應該不會太麻煩。現在收到的問卷不多,希望有更多讀者提供意見。

說了太多閒事,回到 TODO。

之前想過把 mediainfo 移植到 Android,放棄了。我決定自己寫個 java lib 取而代之。

目標:

  • MediaData - MP3 parser

待定:

  • Melody
  • Icon Match (Android 3.0 相容性)
  • Aida drift
  • Icon Match (libgdx)
  • P-FF (仮名,無可奉告)
  • Aida test suite

空想:

  • Android Image view
  • Android Tablet 一級大爆光,東方難度
  • Android Mario EMU,孔明難度
  • Android Tablet Slideshow
  • Android Show control
  • 網上 QB 營業遊戲
  • 2D 橫向打怪 Majo Hunter
  • 爆磚換背景圖遊戲
  • 狗 vs 蝗,有題材而內容未定

就這樣。

兩種遊戲 idea

一:bejeweled 玩法,每次爆石都會刷 background image。背景某些部份會比較難刷。玩家可以自己 upload 喜歡的 image 去玩。

二:蝗 vs 狗,或狗 vs 蝗,乜都好。狗要守門口,蝗就想入侵產卵,云云。只想到題材,未想到遊戲。

水無灯里生日 (-274歲)

和上年是同一幅圖。我對這幅圖很滿意,所以會一直用下去。

在本 blog 的 v3 時期,我曾經介紹過一件 ARIA 商品,azone 出品的「水無灯里60cmドールフィギュア」。

這件商品在 2007 年尾推出,我一直都非常希望能擁有一件,但價錢實在非常驚人,84000 日元。對於當時月薪才萬多元的我來說,實在是傷不起。所以它一直是我在動漫的收藏中,最大的怨念物,最大的遺憾。

我甚至有過衝動想親吻螢幕。真的。

直到最近開始有點錢,再加上受到一點刺激,以及 Yahoo 日本有人放二手拍賣,終於下定決定把它買下來,78000 日元。這是我歷來最大筆的動漫開支。

後來回到家,用尺計算一下 60cm 有多高。原來,真的很高。如果這貨品的狀態很好,這 78000 很划算。

只要到貨,就功德圓滿了。

當然,我不敢保證我會對實物做出甚麼怪事。

2012年1月26日 星期四

閒事 20120126204834

年初一,早。

母:「阿仔,錫啖我先。」

搞乜。

唔想錫,得找個藉口。我不但唔想錫佢,亦唔想俾佢錫。呀,有了。

「己所不欲,勿施於...」

「你係味唔錫呀!」怒吪。

投降。

閒事 20120126102625

很久以前的事。科技大學資訊科技碩士課程,知識管理學課。

栗子手上一部手提電腦。身邊的內地女生,手上也有一部手提電腦。大家互換 MSN。

栗子的留言測試:「ping」

女生的電腦,收到了栗子的「ping」。

「你果然是電腦人啊。」那位女生掩著嘴笑起來:「我早就聽說,電腦人就是這樣子,但想不到是真的。遇上是第一次。」

2012年1月23日 星期一

龍年好

2012年1月22日 星期日

哗众取宠的两条问题

昨天在 FB/G+ 举两条哗众取宠的问题。好像没有甚么人理会。

========

数学题:
五十五位在香港随街便便的游客,其中五十位来自祖国,五位来自美国。
问:来自祖国和美国游客,哪种比较有质素?

答:不知道。

假设香港总共有 1000 位旅客来自祖国,10 位旅客来自美国。那么,祖国的便便率是 5%,美国的便便率是 50%。在这个情况下,即使祖国的便便旅客较多,但整体上祖国的游客较有质素。
以上对数学人来说,是常识。

有时我会在想,是不是内地游客真的较没有质素?还是一种错觉。
不过,如果以上海世博做例子的话,就不太需要多想。

========

常识题:
五十五位在香港随街便便的游客,其中五十位来自祖国,五位来自美国。
问:哪种游客比较有质素?

答:不便便的游客

孔庆东虽然废话连篇,但有一点我是非常赞成的。「纽约也有一部分人是狗,北京也有一部分人是狗,香港不都也一样吗?」的确,香港有很多走狗。而最近北京有一条狗,吠得特别难听。

不守规矩的人,不但是内地,香港也有。例如巴士阿叔赐座男,在香港都引来一阵热议。大家讨厌的,不是内地人,而是不守规矩和无礼的人,这一点是不论内地人还是香港人的。

2012年1月20日 星期五

栗子現場直播問卷 2012

最近在思考本網誌的發展方向,例如內容的種類,話題的分拆,云云。希望各位網友能提供意見。

問卷按此

魔女禁獵區

白日夢時間。續 2008 年的 blog 「《狩獵》亞種」

當時的主要構思,是以動漫角色的手腳砌部件,打怪。這種想法到現在依然沒變。另外還要思考其他細節:

  • 遊戲的高度及闊度:橫軸參考《Monster Hunter》,有多種不同的怪。縱軸參考《Grief Syndrome》,有無限的難度深度。
  • 戰鬥的節奏:參考《Monster Hunter》和《Diablo》。玩家可以選擇直接衝向頭目,或去磨小怪。
  • 能力的提升:參考《Monster Hunter》,個人能力完全由裝備決定。玩家可以隨時改變自己的角色類型,而不用丟 Save 重玩。另外,由於難度沒有上限,所以數值也應該沒有上限,而提升成本就會越來越高。在《Monster Hunter》,提升武器是用怪物素材,提升防具就用武具石。由我設計的話,則會要求所有武器防具都是用怪物素材提升。
  • 遊戲的節奏:只有打怪打怪和打怪。怪物死了就會自動有道具掉進口袋。取得消耗品要麼用錢要麼就打怪,感覺上打怪比農場有趣得多。
  • 空間類型:起初可以以《Diablo》那種 2.5D 為目標,但長遠來說,像《Monster Hunter》那種全 3D 好像會較受歡迎。當然我希望能從 2.5D 上發掘到其獨有的樂趣。雖然像《Grief Syndrome》的純 2D 也不錯,但做不到迷宮和地圖,戰鬥節奏會變得很死板。可以的話,我希望能造出像《Diablo》那樣的隨機地圖。
  • 素材買賣:大慨是像股票市場那樣運作。由於怪物有級數,所以素材也有級數。另外也要搞些像級數權限的東西,高級素材只有高級的角色才能買之類。設計會相當複雜。

設計上的細節現時大慨是這樣。

2012年1月18日 星期三

蘋果與我

"Steve Jobs, the pioneer of the computer as a jail made cool, designed to sever fools from their freedom, has died. ... I'm not glad he's dead, but I'm glad he's gone." -- Richard M. Stallman on Steve Jobs

最近私人伺服器 fishball 出現了問題,終於鐵石心腸,以一部 2007 mid Mac mini 取而代之。雖然算是把一切都 settle 好,但過程很不愉快。

為了增加靈活性,我決定用 virtual machine 來做伺服器。本來想用 Ubuntu 做 Host OS。燒了隻 Ubuntu DVD,塞進去,居然讀不了。我甚至試過用網上提供的方法,把 iso 變成 dmg,讓 Mac mini 讀讀看,都沒有用。
另外我想做 dual boot,但 refit 的反應怪怪的,上網聽說自從 OS 上了 Lion,refit 就壞了,之後都沒有更新。靠。

花了好一段時間,終於放棄用 Ubuntu 做 host OS,改為直接用 Mac OS 來做。Mac 的 VirtualBox 問題不大,最後弄了兩個 Ubuntu HTTP server 和一個 Win7 BT server。但我還得搞 remote 控制 Mac OS host 才行。Mac OS Lion 內置 VNC server,但我用 Linux 的 VNC client connect 時,卻出現問題,畫面呆在登入頁不動。網上說,這就是 Mac OS 自己對 VNC 的相容性問題。有些 client 好像會為支援 Mac 而做一點改動。Mac 啊,你的架子真大。雖然從網上聽到一些解決方法,但未有時間試。希望成功吧,我不希望 VM Host OS 會控制不了,會很麻煩的。

我對 Mac 的討厭,不是這一刻才有。

Mac 使用者很喜歡頂頂那條 Menu bar,對他們來說,這就是 Mac 比 Windows 優勝其中一個例証。媽的,我真的想不到這樣把 Menu bar 拆開,到底有甚麼好。他們有很多奇怪的理由啦:放在頂頂會更易按,放在頂頂不會佔地方。我真的不懂該怎麼反駁。就正如有人告訴我 1+1=3,與其跟他上數學課,倒不如帶他去看腦科。我記得當初還有人告訴我,iMac 的程式視窗沒有最大化鍵,是因為螢幕太大。你也知道自己螢幕夠大了吧?那就更不該把 Menu bar 放上頂。

之前亦曾經把家人去旅行的照片灌進去,然後在資料夾打開相片,按鍵去看下一張。靠妖,居然做不到。Windows 和 Linux 有的簡單功能,你居然沒有?

在經典的 Mac 廣告「I am Mac I am PC」,他們用俊男來比喻 Mac,用肥佬來比喻 PC。而我使用 Mac 的時候,卻覺得自己像個癡肥,寸步難行。

直到現時為止,我對 Mac 用家歌頌 OS X 的所為,都覺得很不可思議。

2012年1月16日 星期一

TODO 2012w03

之前花了數週去打造 ClockCam,終於在 11Jan 推上 Market。今天我懷著非常興奮的心情,向大家宣佈現時的下載數字。

零!

這數字真是令人興奮,真是得來不易。告訴大家,之前我弄 Issue 9362,介紹文開宗明義「End user will not need it」,發佈的第一天居然有人下載和評分。我真的很費解為何這垃圾 app 會吸引到一丁點關注。好奇之下,再去 Android Market 挖一些垃圾 app 看看,居然連 HelloWorld 也都有人下載。然後我懷疑,是不是 Android Market 會對一些可憐的 app 給可憐分?但現在不用懷疑了,沒有人下戴過的 app,就真的是零,沒有可憐分。

我真的很好奇,這個「零」可以維持多久?當年香港五區公投,有人矢志「零票落選」,卻得到 91 票。而我這個 app 在 Market 中,立足於天地,足足五天,居然還可以「零」。我希望這個「零」可以一直維持下去,我是認真的。各位網友也請不要為了可憐我,而下載這東東,我是認真的。反正這個 app,當初就是為自己而寫。要是有人向我要求 support,我會很頭痛。

說到頭痛 support,最近開始又收到不少有關「Music Widget Plus」的投訴。可能是因為大家開始轉用新機,而這個 app 出問題。當初我希望能 support Android 原生 Music app,可能是個錯誤的決定。對於用家的慘叫,我真的無能為力。現在唯有把心力投放在 Melody 上。


別誤會:Melody 與 My Melody 完全沒有關係

沒錯,自從 ClockCam 告一段落以後,Melody 開發亦恢復了。現時的目標,是把 MediaInfo 移植進 Android,來分析音訊/視訊檔的內容,例如曲名/長度云云。如無意外,我會把 MediaInfoLib 的 Android 移值推上 github,網上需求這東西的呼聲都頗高。至於會不會弄一個 MediaInfo 的 standalone app,就要看心情了。

目標:

  • MediaInfo-Simple
  • MediaInfoLib-Android

待定:

  • Melody
  • Icon Match (Android 3.0 相容性)
  • Aida drift
  • Icon Match (libgdx)
  • P-FF (仮名,無可奉告)
  • Aida test suite

空想:

  • Android Image view
  • Android Tablet 一級大爆光,東方難度
  • Android Mario EMU,孔明難度
  • Android Tablet Slideshow
  • Android Show control
  • 網上 QB 營業遊戲
  • 2D 橫向打怪 Majo Hunter

2012年1月13日 星期五

麻衣のカカカタ☆カタオモイ-梵

本曲是由日本動畫《日常》的角色水上麻衣的聲優富樫美鈴,用錯誤的方法唱出該動畫的 OP《ヒャダインのカカカタ☆カタオモイ-C》。結果是完全不同的風味。雖然算不上是好歌,但對該動畫的愛好者來說,算是震憾之作。

2012年1月11日 星期三

TODO 2012w02

對於之前沒有 TODO 的數週,我只能說,實在太精彩了。打機,看 Pico,去宿營,真是忙翻天,感覺就像沒有休息過。

無論怎樣也好,整個窗景拍照計劃總算正式運作。現在只差把 ClockCam BETA 嘔上 Android Market,事情就只剩下相片的處理和發佈,都不是甚麼吃緊的事項。

至於飛機杯的研究,目前需要搜集更多關於無線傳輸技術的資料,最好有一兩件無線零件,讓我做做實驗。當然我還要找到「USBオナホール」才行。要是拆了這東西,應該會有更多的發現。

目標:

  • Clock Cam BETA 發佈
  • MediaInfo static build

待定:

  • MediaInfo @ Android
  • Melody 發佈
  • Icon Match (Android 3.0 相容性)
  • Aida drift
  • Icon Match (libgdx)
  • P-FF (仮名,無可奉告)
  • Aida test suite

空想:

  • Android Image view
  • Android Tablet 一級大爆光,東方難度
  • Android Mario EMU,孔明難度
  • Android Tablet Slideshow
  • Android Show control
  • 網上 QB 營業遊戲
  • 2D 橫向打怪 Majo Hunter

閒言 20120111101540

栗:「泛民初選,我想不到你會成為義工。為甚麼你會成為義工呢?」

友:「是某教育界選委邀請的。」

栗:「義工有沒有車馬費?」

友:「只有一包檸檬茶,我想是贊助。」

栗:「你是用大會提供的 iPad,還是自己帶的個人電腦?」

友:「是我自帶的 Netbook。」

栗:「軟件同時有 PC 版和 iPad 版?還是一個網頁?」

友:「是軟件來的。有 PC 版和 iPad 版。」

栗:「他們有沒有格式化你的電腦?有沒有做甚麼檢查?」

友:「沒有格式化。我把電腦交給他們,他們就為我安裝投票程式。感覺挺兒戲的,但那些安裝軟件的人,似是技術人員,不像是笨蛋。」

栗:「事後他們有沒有刪除那些投票程式?」

友:「有。是由他們親自為我刪除的。」

===這是閉月羞花的分界線===

栗:「在私隱保安的問題上,莫乃光說找了專家,那到底是甚麼專家呢?他們可以是資訊保安公司,也可以是中學生。你知道的,有些人真的會把中學生當專家。而我最好奇的是,為何他們不告訴大家,那些專家是甚麼身份呢?要是告訴我們那是甚麼公司,大家會放心一點。」

友:「說不定是大學教授吧。」

栗:「大學教授也好,至少告訴我們是甚麼大學嘛。例如中文大學社會研究甚麼的,大家會安心一點。」

友:「但如果真的是保安公司,尤其是銀行的保安公司,IBM 級數的,我想他們付不起錢來。除非是贊助。」

栗:「IBM 會贊助搞這些海外的政治活動嗎?若果真的是這樣,那泛民要不要為 IBM 賣廣告?《IBM 特約:泛民初選》?我想中共會說外國勢力介入了。」

===這也是閉月羞花的分界線===

友:「泛民起初說估計只有一萬人會投票,我想是低估了。參與選委會投票的民主派支持者,至少有五萬,減一半也有二萬五。如果公民黨有參與,投票數會更多。」

栗:「同意。」

友:「而我對鍾庭耀的民調,最有興趣。他當年為了民調,連董建華也都開罪,甚至把港大校長拉下台。他會比較有公信力。」

栗:「可惜沒有太多人會記得他是誰。我撫心自問,「鍾庭耀」對我來說,只不過是稍為聽過的人名而已,連他屬於哪個陣營也不知道。即使當年怎麼驚天動地,現在大多數人都已經忘記了。」

2012年1月10日 星期二

Hash

早前香港泛民政黨搞特首初選,引來一些私隱安全的爭議,例如身份證號碼的外洩問題。泛民的香港互聯網協會會長莫乃光稱,他們會運用 hash 技術,去保障市民私隱,避免身份證號碼外洩。本文會深入淺出,簡單介紹 hash 技術,並指出其安全性問題。
本文主要分為正文和附註。正文是對 hash 的簡單介紹,我希望一般人能看得明白。而附註部份則包含技術細節,但比較深奧,不是人人可以看明白。
在此先聲明,本人是香港科技大學資訊科技碩士(註一),以下所言,絕非泛泛的空談(註二)(註三)。

外界有甚麼私隱的憂慮?

  • 泛民團體能得到投票者的身份證清單。
  • 若發生意外,或被黑客入侵,投票者的身份證清單就會外洩。

甚麼是 hash 技術?

Hash 技術是透過一系列複雜的數式和程序,把一串資料轉化成一個簡短的數值。在資訊科技中,hash 技術是非常基本的常識。任何 IT 人都一定會知道 hash 技術。如果不知道,就沒資格自稱 IT 人。

Hash 的算法有很多種,例如 MD5 / SHA-1 / CRC32,原理和慨念都差不多。本文主要會以 MD5 做例子。(註四)
以下是 MD5 的部份實例。一般的 IT 人都習慣看十六進制的 MD5 數值,但為了方便一般的讀者,我也會展示十進制的結果以作參考。

原文MD5 (十進制)MD5 (十六進制)
Apple 211859036441461519383052513295366044732 9f6290f4436e5a2351f12e03b6433c3c
apple 41499123188802761002464065009245263231 1f3870be274f6c49b3e31a0c6728957f
Orange 192223576784283470402484290296281237729 909cea0c97058cfe2e3ea8d675cb08e1
The quick brown fox jumps over the lazy dog 210103647840849757586127012022035159510 9e107d9d372bb6826bd81d3542a419d6

MD5 和其他一般的 hash 算法,都有以下的特性:

  • Hash 數值看起來就像高深的數字,一般人可能會被嚇怕,但其實沒有意義。(註五)
  • 不論何時,只要輸入的資料相同,計算出來的 hash 數值亦都相同。完全不涉及任何隨機的成份。(註六)
  • 即使輸入的資料有些微的不同,結果也會出現極大的變化。例如 Apple 和 apple 的分別。
  • 輸出的數字必定在某個範圍之內。MD5 的範圍是 0 - 340282366920938463463374607431768211455。(註七)
  • 輸入的資料可以極度長,你甚至可以把全套金庸作品化為短短的 hash。
  • 無法從 hash 數值把資料還原(下文會討論字典攻擊)。你可以把一套金庸作品化為一個短短的 hash 數值,卻不能把短短的 hash 數值還原成一套金庸作品。
  • 在極極極極極端少數的情況下,兩組不同的資料輸入,經過同一個 hash 算法,可能會得出完全相同的 hash 數值。這就是所謂的 hash 衝突。但發生機會實在極極極極極端微。在 MD5 發生 hash 衝突的機會,比連中五次六合彩還要低。(註八)

Hash 技術的最主要用途,是檢查資料在儲存和傳輸中途,有沒有出錯,有沒有被修改。
例如,甲某把「Apple」發給乙某,並附上它的 MD5「9f6290f4436e5a2351f12e03b6433c3c」。後來陰差陽錯,送到乙某手上時卻變成了「apple」。乙某計算「apple」的 MD5「1f3870be274f6c49b3e31a0c6728957f」,和之前的 MD5 不相同,乙某就知道傳輸過程出了問題。(註十九)
一些人上載數百 MB 的電影上網時(犯法),也會附上 MD5 數值。下載者可以透過檢查檔案的 MD5 數值,來確認檔案有沒有出問題。另外一些 P2P 的傳輸軟件,例如 BT,都會內置 hash 數值,並自動檢查檔案沒有出錯。
另外,hash 還可以做密碼驗証。如果你的銀行密碼是 Apple,銀行不會直接儲存 Apple 這個字,而是它的 hash。因為是 hash,銀行就不能還原變回密碼,但可以對客戶做到密碼驗証,達到最佳的保安。(註九)(註十)
由以上可見,hash 能夠用非常小的成本,來確保資訊的安全。在資訊科技中是非常方便的技術,亦是資訊科技的常識。

泛民如何使用 hash 技術,來檢証身份証號碼?

例如小明去投票,把身份證輸入到電腦,電腦就會先把他的身份証號碼變成 hash 數值,然後系統就會搜索資料庫。由於小明是第一次投票,資料庫沒有該 hash 數值,我們就能確認小明沒有投過票。小明投票後,系統就會把那個 hash 數值輸入到資料庫中。
然後如果小明再去投票,再次把身份證輸入到電腦,再次計算出 hash 數值。但這時系統會從資料庫中找到相同的 hash 數值,即代表他已經投過票。

hash 技術有甚麼問題?

如果把 Hash 技術,運用在選舉的身份証檢查,我們一般有兩個主要考慮的問題:

第一個會考慮的問題,是 hash 衝突。
正如之前提到,hash 數值是有可能出現衝突的。假設小美有連中五次六合彩的幸運,和小明身份證的 hash 相撞。小明投票後,到小美投票時,系統會從小美的身份證,計算到和小明身份證相同的 hash 數值。由於此時資料庫已經有小明身份證的 hash,系統就會以為小美已經投了票,產生美麗的誤會。

但發生以上問題的機會,亦微乎其微。假設身份證都是一個英文字母再加六個數字的組合(註十一),有 26000000 個變化。而 26000000 個身份證號碼,出現相同 MD5 數值的機會,卻仍遠遠低於連中三次六合彩(註十二)。更何況香港人口只有 710 萬,MD5 衝突機會更少,所以這個問題可以無視。

第二個會考慮的問題,是資料還原的問題。之前雖然說過,我們不能用短短的 MD5 數值來還原一部金庸作品。但若套用在選舉的身份證,卻會輕易地被「字典攻擊」把身份證號碼還原。
要發動「字典攻擊」,只需一部普通的家用電腦,花一點時間製作 26000000 的身份証 hash 轉換表:

身份證 (註十一)MD5 (十六進制)
A000000(A)3e5d53ecf650f2f253a95dc725bc8c44
A000001(A)bd18aaf50431f42c3c4a2179ba0c90c7
A000002(A)9b56ad94e96bd75e6e1d1fc10d74fa33
...
Z999999(A)26cee21d763191b4af4c20aacb28a5ad

如果泛民的資料庫中,出現 bd18aaf50431f42c3c4a2179ba0c90c7,他就是 A000001(A)。如是這般,我們就能找出所有投過票的人的身份證。(註二十)

應付「字典攻擊」有很多方法,其中一個方法名叫「salt」(註十三)。它是由使用者輸入的字串,來影響 hash 數值。如下(註十四):

身份証原 MD5Salt=ASalt=B
A000000(A) 3e5d53ecf650f2f253a95dc725bc8c44 b1b6241efd48a508e893efbc5364ce61 197ef08e6bd12a69060880d7c34ef11c
A000001(A) bd18aaf50431f42c3c4a2179ba0c90c7 ed4b4820a17a875de4bac4104bd96a6b a6db096939edb5aaaa3542d620448e60
A000002(A) 9b56ad94e96bd75e6e1d1fc10d74fa33 2cf76cfc24da72c084419090cde00a67 fc7e42a868ffc205947f19175e67441c
...
Z999999(A) 26cee21d763191b4af4c20aacb28a5ad 638f60e278cf30b06038a41b7392c6b6 ff182d9109570e84cc1dd6c1c1710767

如上所見,只需要一個簡單的 salt,就能使整個 MD5 數值表出現大大的變化。Salt 此時就像一個密碼。即使整個身份証資料庫被搬走,只要 Salt 夠長夠複雜(註十五),泛民又能把 salt 好好保存,其他人也無法得到那堆選民身份證。(註十六)
但是,如果某某同時擁有 salt 和資料庫,他還是能把投票者的身份証號碼還原。方法像之前提及過的「字典攻擊」做法,利用那個 salt 製作 26000000 個身份証 hash 的轉換表,就能得到所有投票者的身份証號碼。
而現時有能力利用以上方法,把所有參與選舉的市民的身份証號碼還原的,就是主辦初選的泛民團體本身。

於是結論就是:如果主辦團體缺德,他們就可以把投票者的身份証號碼挖出來。如果主辦團體無能,洩露資料庫,hash 方法及其 salt,整個身份証號碼清單隨時會被公緒於世。簡單而言,hash 根本沒有解決本文最初提出的兩個憂慮。

我們可以怎麼辦?

我把 hash 甚麼的說了這麼久,結果還是回歸最根本的問題:你是否相信主辦團體?

如果你不相信他們,那麼 hash 就沒有意義。即使他們說使用了驚天地泣鬼神宇宙無敵的安全措施,你都可以懷疑他們有後門,你都可以懷疑他們會犯錯。你甚至可以懷疑義工能過目不忘,把每張身份證都用腦袋記住。如果你不相信他們,甚至認為他們已經投共,那麼有沒有 hash 根本沒有關係。

如果你相信他們,那麼 hash 也一樣沒有意義。在區議會和立法會選舉,政府也沒有使用甚麼 hash,所有工作人員都清楚看到選民的列表,誰有投票,誰沒有投票,甚麼名字,甚麼身份證號碼。你這樣仍不會擔心自己的私隱,就是因為你相信政府。如果你能像信任政府那樣信任主辦團體,那麼有沒有 hash 根本沒有關係。(註十七)

既然問題和 hash 無關,所以和本文主題亦無關了。(註十八)

歡迎分享及轉載本文,請註明出處: http://blog.luzi82.com/2012/01/hash.html


註一:我相信一般的電腦學士,高級文憑,甚至對 IT 有認識的中學畢業生,都明白這些道理。

註二:科幻電影的電腦奇才可以瞬間破解 256 位元的密碼。嘿嘿嘿。我不敢說沒有這種人啦。聽說有人發個正念,電腦病毒就拜拜了。

註三:網上某文章稱 SHA-1 可以被輕易破解。姑且不論該文章是否真實。我隨便在一部白痴的 i7 870,用白痴的 single thread 跑白痴的 bash script,計算 26000000 個 MD5 數值做字典攻擊,也不需要兩個鐘。

註四:即使泛民在選舉中使用更高位元的 hash 方式,面對本文提及的「字典攻擊」,亦完全沒有幫助。

註五:本來是打算以 CRC32 做例,短小精桿看起來不太可怕。但如果用它來對照身份證,hash 衝突機會超大。

註六:如果使用 salt,salt 數值就必需固定,才能得出相同的 hash 數值。另外,不同的 hash 算法有不同的 hash 數值。以 Apple 為例:

算法十六進制結果
MD59f6290f4436e5a2351f12e03b6433c3c
CRC3268efff54
SHA-1476432a3e85a0aa21c23f5abd2975a89b6820d63

註七:不同的算法,hash 數值範圍也會有不同:

算法hash 數值範圍
MD50 - 340282366920938463463374607431768211455
CRC320 - 4294967295
SHA-10 - 1461501637330902918203684832716283019655932542975

註八:128 位元 hash 衝突的機會率:2^(-128)=2.9e-39 ,連中五次六合彩的機會率:(49C6)^-5=1.9e-36 。

註九:任何有經營網上服務的人,例如香港人網討論區,都應該明白這個道理。如果不明白,我會為你們會員的私隱感到非常不安。

註十:面對字典攻擊,可以使用 salt 防禦。但 salt 不能保護身份証號碼,述於後文及註十六。

註十一:身份証結尾括號內的是驗証碼,本身有一定規律,本文不作深入討論。

註十二:26M 個身份証號碼出現相同 MD5 的機會率:1-(2^128)P(26M)/((2^128)^26M)<1-(((2^128)-26M)/(2^128))^26M=2.0e-24 。連中三次六合彩的機會率:(49C6)^-3=3.7e-22

註十三:其他防範「字典攻擊」的方法:例如把身份証號個整個反轉,效果和 salt 相同。但和 salt 的問題一樣,只要方法給洩露出去,就會失去保護作用。

註十四:本例子的 salt 類型為 HMAC。

註十五:如果 salt 不夠長不夠複雜,攻擊者還是能透過暴力算法,把 salt 挖出來。如果攻擊者知道其中一位投票者的實際身份證號碼,如自己親身投票,那麼挖 salt 的速度會更快。

註十六:一般電腦或網上討論區,在記憶賬號密碼 hash 時,一般都會在不同的賬號,使用不同的 salt,然後把 salt 不經加密存放在資料庫中。這個做法有個好處,就是使攻擊者無法利用字典攻擊,同時取得所有賬號的密碼,大大增加攻擊者的成本。而且不會製造新的保安漏洞。但在泛民初選中,由於系統要檢查選民有沒有投過票,就必須支持搜索功能。但如果每張身份證都使用不同的 salt,資料庫就無法從 hash 進行搜索。因此這個方法在泛民初選並不適用。

註十七:身份證本身來自政府,私隱沒甚麼好擔心的。但從最近的造票事件看,若政府不是無能,就是缺德。

註十八:IT 除了研究算法,軟件和硬件的安全隱定以外,還有操作者管理者的能力和操守。雖然莫乃光聲稱系統安全,但他也只是說技術層面而已。他說找了「專家」保障私隱安全,那「專家」又是誰呢?是要動輒花上數百萬的資訊保安公司,是會寫 PHP 網頁的中學生,還是他自己?在我們 IT 界,一些人為節省成本偷工減料,找中學生寫程式是司空見慣的事。而莫乃光乃堂堂香港互聯網協會會長,不似會做這種有違專業操守的勾當。但任何一位負責任的 IT 人,都不會贊成使用義工提供的私人電腦,去做登記身份證的工作,亦有損專業形象。
另外,香港的泛民陣營,都是登記為「有限公司」營運。而根據香港的法例,任何有限公司搜集個人私隱,都必需得到書面同意。然而今次的選舉過程卻沒有做這個。所以,任何人或組織,包括反對選舉的人民力量,都可以以此控告主辦團體。但如果他們這樣做,就會令以後的初選蒙上陰影。

註十九:雖然 hash 可以讓收訊者發現資料出現問題,但無法把資料修復或還原。如果發生問題,一般的做法是要求對方把訊息重發,或重新把檔案下載。

註二十:其實不論登記系統是用甚麼方法,甚至是個外星人的黑盒,只要它能快速確認某個 ID 是不是已經被登記,這種系統就已經稱不上安全。例如,我想知道小明有沒有投票,只要把他的身份證丟去系統確認一下就可以了。假如有暴徒突然佔領香港,要找出所有投票者,他們可以再次把那個系統搬出來,強迫全香港人驗身份証,就能找出所有投票者。這思考進路不但簡單,亦不需要研究 hash 的特性,就能得出結論。但是本文章主題既然是 hash,所以就由 hash 角度出發吧。其中一個規避「全民驗証問題」的方法,是使系統變得極不快速,例如花一分鐘去驗証一個人,暴徒就必須花四十九年去驗証 26000000 個身份證號碼。但即使系統變得這麼慢,暴徒還是可以花一分鐘,去驗証小明這個人有沒有投過票,因為這本身已經是該系統設計的最根本原則。如果設計者嘗試把每個人的驗証時間再拉長,例如一小時,那麼在正式初選時,每位選民也必需花一小時去投票,是沒有可能的。

2012年1月9日 星期一

九上 20120109104406

「強者不需要回復藥,強者不需要有衫著。你見我成張台都係葡萄適雞精,著衫著到成個愛斯基摩人咁款,就知我係邊種人。」

「人飢餓的時候,吃垃圾食品都會覺得好味,但對身體不好。只有溫飽的人,才能追求真正的味道。而飛機杯其中一個重要功能,就是讓男性在性方面得到基本的滿足,不會因飢餓而招惹劣質的女性。」

「男人放棄一百分的飛機杯,卻選擇只有十分的女性,那九十分的差距,就是愛。這九十分是出自男方,而不是屬於女方。」

「某文章以性愛和網球做比較,來探討性和愛之間的關係。文中指出人可以和母親/狗打網球,卻不能做愛。但如果要我和母親/狗打網球,我寧願玩 Wii Sport。」

「看到成人玩具店那些飛機杯海,想到自己要在當中佔一席位,甚至成為大亨,就覺得非常有壓力。但其實那些飛機杯都不怎麼厲害,就像三四百元的平價電話,高級一點的也不過是早期的 Symbian 或 Windows CE,而我的目標是 Android。」

2012年1月8日 星期日

飛機杯繼續考察

今天由尖沙咀行到旺角,出入大小不同成人玩具店,獲益良多。

  • 成人玩具店多是上樓店。走進去只需要恥力。內裡的店員表現得很正常,還會講解玩具的功能和用途。
  • 這世上成人玩具的款色,真的有很多。要成為飛機杯大亨,恐怕不是易事。
  • 香港賣的成人玩具,多是英文的商品(忘記考察生產地)。日本的也有不少。英文:日本 = 2:1 。
  • 在成人漫畫中出現的性玩具,幾乎都能找到。例如假陽具,珠串子,假陽具內褲。最驚異的是,連給男性用的假胸,假陰道內褲也有。
  • 歐美的性玩具多是捧狀物。日本的性玩具則多是杯狀物。
  • 歐美生產的假陽具,某些真的異常粗狀。有些甚至幾乎有汽水罐那麼粗。把這麼粗的東西塞進去,真的沒問題嗎?
  • 日本生產的飛機杯,有些是科技外型,看起來像子孫根碎斷器。另外還有女優和二次元萌包裝,亦有少數以古雅包裝。價錢三百至八百不等。
  • 日本的飛機杯,有些內裡是有條理的坑紋,有些是模仿女性的子宮。而外觀上有些只是個圓洞,有些模仿女性的陰唇。
  • 在日本的動漫網誌看到的偽 K-ON,偽俺妹杯杯,香港也有賣!也有二次元蘿莉的主題,送小褲褲,不怕被 FBI 抓嗎?還有一些聲優主題的杯杯,送 CD 乙張,圖畫是二次元聲優一邊被 XX,一邊錄音,激發腦內補元。
  • 某牌子某系列的成人玩具,需要另購一個有線控制器。這個控制器能控制其系列中不同的成人玩具。但這個控制器能否**同時**控制多個成人玩具,我就不清楚,不過這東東要駁線的。
  • 某女性用加棒子小褲褲,其棒子可以隨時上升下垂。
  • 一些店子會展列不同杯杯的洞洞。如果你夠恥力,可以試試即時插手指進去。
  • 之前我說的「USBオナホール」,找不到有賣。大多數店子都不知道是甚麼東東,而有少數店子不敢入貨,因為這東東能和色情電玩連動,而色情電玩多數會有劇情,而有劇情的東東需要經過電檢署,而電檢署的檢查非常麻煩和耗時。另外版權也會是一個考量。總言之就是非常麻煩,我即使說加錢訂購亦遭拒絕。幸好,有間店子會幫我找。
  • 總言之就是大開眼界,文字也表達不了其震憾。這些玩具如果看得多,再看回普通的東東時,可能會產生糟糕的聯想。

如有好奇或不解,歡迎詢問,我會儘量答。

長洲北帝姻緣簽

求簽收五元,解簽收十元,看相看姻緣收一百元,看全相收二百元。我只求簽解簽看姻緣,115。

  • 簽文:開始時會遇到障礙,但最後會有收成。
  • 八字:木較弱,龍年生日後(大魔導士?)會行木運,到時會有姻緣運。
  • 對象宜比自己小超過四年,或大超過四年。
  • 對象宜於春天出生,夏天也可。
  • 對象宜出生於外地(千里啊...)。
  • 對象宜比自己有大差別,比如說不同行業的。

大家就一起見証靈唔靈。

冷水:
友:那些條件,不是在說 Love Plus 嗎?春天情人節推出,日本製,而且是學生,二次元,差別夠大。
栗:你不要打消我希望好嗎!

2012年1月6日 星期五

飛機杯考察對象

USBオナホール

激發我研究飛機杯的最主要原因,就是這個。我對它所知不多,簡單只知道以下這些:

  • 連接 USB
  • 和遊戲連動
  • 有一顆高潮鍵

我的想法:

  • 能否改為無線,例如 bluetooth?
  • 古古的動作會不會產生 input signal?
  • 能否移除高潮鍵,改為 detect?
  • 有沒有震動器?有多少個?是不是分成不同部位震動?有沒有安全措施避免超震?
  • 有沒有發熱線?有多少個?是不是分成不同部位發熱?有沒有安全措施避免過熱?
  • 會不會釋放怪液?如何實現?有多少個?是不是分成不同部位釋放怪液?
  • 處女膜會否重生?如何實現?
  • 如何清洗?
  • 我在網上看到肉芯能拿出來,可以替換嗎?
  • 防水/防怪液的措施?
  • 重量?大小?

為了探求以上這些答案,我決定買一兩件做考察。但現在問題是,我不知道方法。一些代購網站如 bidinone 已明文說成人用品是違禁品,似乎不太行得通。

ICON

數天前從甲某聽到了一些無聊的八卦。

某位我不認識的傢伙乙某,十分喜歡 AKB48(註一),整個 FB 都是 AKB48。這很正常(註二)。
但甲某有點擔心:FB 就像一個人的 CV,現在人人想起他,都只會想起 AKB48,感覺就是乙某=AKB48(註三),這會影響他的交際。
栗:但如果他對 AKB48 的關注,不只是流於粉絲的層面,而是能深入分析她們每一個細節,甚至能帶領其他人用全新的角度去看待 AKB48(註四),這也算是一種魅力(註五)。對了,你有沒有向他表達你的想法?
甲:有,然後他變本加厲。
栗:哈哈哈。如果他是女生的話,我會有興趣認識他。

  • 註一:我對 AKB48 有些微的討厭,但這只屬我的個人偏見。一個人喜歡 AKB48,完全不是問題。但既然是三次元的偶像,那些粉絲就不可能自稱為二次元的宅。但 AKB48 是出自二次元之都秋葉原,甚至有攻陷秋葉原的氣勢,我實在百思不得其解。異端的感覺。
  • 註二:我自己的 FB/G+ 也變成了一個魔域。有些人怕被親戚加 FB,怕惹來親戚的關心。但在我的情況,那親戚恐怕要先關心他自己吧。
  • 註三:栗子捌貳=魔域。
  • 註四:飛機杯革命:「避免女性成為男性的飛機杯。」喂我覺得這句不錯的說。
  • 註五:魔域的魅力。

2012年1月5日 星期四

無題 2010 解

20100218194000

我不太記得為甚麼我會突然寫這個。到底是看了類似的新聞,還是腦內長菇長出這樣奇怪的東西,激發我寫這東東的原因,不知道。
而當年我到底想表達甚麼,也都不太清楚了。不如就說說現在我看回這文章的感受吧。

故事出現了很工整的平衡,都是 A 向 B 有事求不得,就開打。但兩個故事放置的先後次序,會有不同的預期效果。
如果文章以母親打兒子開始,預期效果是:母親打兒子很常見→兒子打母親很奇怪→反思。 如果文章以兒子打母親開始,預期效果是:兒子打母親很奇怪→母親打兒子很常見→重新審視兒子打母親的故事→反思。
而那種「重新審視」應該是我當時想製造的效果。當然,說不定讀者的想法,會超出我預期之外:例如純綷覺得我很無聊而一笑置之。

無聊一想。如果每次兒子考不到第一,母親就打,那一個課室三十人,豈不是會發生二十九次虐兒事件?反之,如果遊戲機只有一件,那應該會發生二十九次虐母事件吧。這些都是後話了。

20100219103012

寫作動機十分明顯。但為何這東東會成為無題系列?我卻有點不解。 談到政制,中國人往往都犯了同一個通病,就是只看到掌權人的錯,卻看不到制度的錯。

但身在狼的國度的羊,除了向南逃跑以外,是不是沒有其他方法呢?

無題 20120105140136

世界末日前的除夕夜。小明和小美在傳說之鐘塔上,遠望城市的燈火。

「我下定了決心...」小明深呼吸一口氣。「在新一年來到之後,我就會再一次向你告白。」
「嗯。」小美微美著點頭。

除夕倒數開始了。
「十!」
街上傳出倒數的叫聲。
「九!」
小美握緊小明的手。
「八!」
小明對小美的手有點失惜。
「七!」
小明用困惑的眼光看著小美。
「六!」
小美對小明的困惑報以微笑。
「五!」
小明亦傻傻地對小美微笑。
「四!」
小明和小美互相對望。
「三!」
小明的眼裡只有小美。
「二!」
小美的眼裡只有小明。
「一!」

小美吻向小明的嘴唇。

「噹噹!」鐘塔響起了鐘聲。
「新年快樂!」
歡呼聲響遍四周,天空升起了煙花,照亮了整座城市,照亮了燈塔上的二人。
小明腦海一片混亂。小美的嘴唇,小美的氣息。只想把這一刻留住,但小美卻突然鬆開。
「你剛剛不是說,有事決定要做的嗎?」小美甜甜微笑著道。
小明再深呼吸一口氣,再把那句話道出來:「我愛你!做我的女朋友吧!」

「我拒絕。」

小明感到驚訝。沒有悲傷,沒有失望,只有驚訝。
「你知道為甚麼嗎?」小美甜絲絲的笑著道:「因為我喜歡你向我告白。」
小美的回答,一下子掃除了小明腦海中的所有疑惑。小明扶著欄杆,對方遠方的燈火哈哈大笑。
「那你又為何不斷向我告白?」
小明再凝望小美的眼睛。
「因為我喜歡你。」

「在以後的日子裡,直到明年,下一年,你繼續向我告白,好嗎?」
「在以後的日子裡,直到明年,下一年,你繼續聽我告白,好嗎?」


然後,故事完了。因為這是故事的最後一日,所以是末日。時間亦在這一刻止步,變成永恒。

2012年1月4日 星期三

去長洲吃狗肉

某男拍拖,在三個月後的今日散左。如果只計我們已知的禮物和借物,大約都值八千。雖說錢財身外物,但這對我來說實在太多。如果去叫雞,應該可以打二十發。
沒錯,我會以叫雞次數作為戀愛支出的單位。那些從戀愛中獲得物質的受惠者,請懂得感恩。

作為朋友我第一個能給的建議,就是處理掉那條狗。
說實話那條狗實在非常可憐。不知是誰的主意,本來是男方買來送給女方,但女方又把狗寄放在男家(不想要?)。現在分手了,那條狗就在男家裡篤眼篤鼻。
我不會討論人道問題。我記得當年H5N1政府要殺雞,有人忍痛殺了自己的寵物雞,再吃掉。而在小說《面包樹上的女人》中,亦有因失戀而吃寵物鵝的橋段。
只要把那條狗吃掉,他以後一定可以對女生狠下心腸,像劊子手和廚師。

第二個建議,是去長洲散心。
栗:「我家不行嗎?」
友:「你家太宅了。」
囧!

結論:去長洲把狗吃掉!
長洲應該有狗肉食,找人煮狗應該不難。
當然是說笑,狗肉方面。

個人的隨想

有個理論說,聽別人傾訴時,就好好做一個聆聽者,別太指手劃腳。傾訴者自然會找到出路,而我亦相信他的能力,所以不用掛心太多,也不用說太多話。
但我有個很不好的天性,就是喜歡在迷宮放炸藥,做沒營養的 brainstorm。你還是給我去長洲煮狗肉吧。

女性認為「鑽石代表永恒」。我家的二次元物雖遠比不上鑽石,但比戀愛實在好太多了。當然也有人會說,因為短暫才珍貴吧。
不是有人說「和文學談戀愛」嗎?那「和萌學談戀愛」有甚麼錯?我會繼續走我的路,情人節買Love plus。當然,也會定期在網上發些奇怪的求愛廣告,娛人娛己。

這是公開的文章,那男的會看到,說不定連女的都會看到。大家回文的話,語氣別太重。
屌你我咁大個人,仲未破處。

飛機杯大亨

2012,立志成為飛機杯大亨。

  • 避免男性因性衝動而誤墮情網。即使要戀愛,質素至少要比飛機杯好。
  • 避免女性成為男性的飛機杯。
  • 減少性罪案。
  • 減少性病。
  • 不會有副產品。

範圍不限於飛機杯,任何成人玩具都可以作為研究對象。

ps. 圖出自日本動畫《たまゆら〜hitotose〜》,該動畫和飛機杯及成人話題沒有任何關係。