密碼洩露那事

2011年末,2012年初,IT界最熱鬧的事情就是各網站的用戶密碼洩露了。

最開始是一個程序員常上的網站,CSDN。到後來,什麽人人網、天涯、開心之類的密碼庫都不約而同地被爆了出來。元旦過後第一個工作日,新浪微薄也爆出了SQL注入漏洞,於是,新浪微博的密碼也暴露了(不過沒有大規模洩露給公衆,至於黑客圈内有沒有流傳開,目前就不是我等人能知道的了)。

是網站就有漏洞和Bug,這個不奇怪。但是問題是,爲什麽各大網站都會選擇明文保存密碼?

我在高中的時候架設了一個ASP班級論壇,用的是動網BBS2.x的源碼,那時候也是用的明文,我就覺得不安全。那時候我也不知道居然有不可逆的加密方式,更不知道什麽MD5、SHA,爲了不讓人一眼看出來直接的對應關係,我的加密方法是ASCII碼減去它在字符串裏面的位置。例如bcde,就會加密為aaaa(其實我忘記了是aaaa還是bbbb了)。這個比簡單的一一影射式的加密好那麽一點,但仍然是簡單的,而且,最重要的是,它是可逆的。後來和Donald、Wing他們聊天說起來,Wing分析了她自己的密碼的密文,又註冊了個新的賬戶,用了很短的時間,印象中不到10分鐘,就把我的加密算法搞出來了。

後來我發現我用的動網論壇早就有高級版本了,在這個高級版本裏面,我驚訝地發現了一個名字叫MD5的函數。我很快地就把我的密碼加密算法替換成MD5了。(我忘記我是直接升級了論壇還是只是替換了密碼加密方法,印象中好像沒有直接升級論壇,或者就算升級也是很後來的事情了,我在這個版本的動網論壇上做的二次開發還挺多的,包括做的一個不記名投票系統,後來用它選班委會的時候被它坑了一把:作爲全班最不擅長運動的人(沒有之一),我被選為了體育委員)

說了那麽多,我只是想說,數據庫裏面的密碼加密這是最簡單的事情,連高中的我也能想到,爲什麽還有那麽多大的網站,包括CSDN這種給程序員們做的網站,還會用明文密碼?在我們公司的RTX某個全是程序員的群裏面反復討論過這個問題,陰謀論一點就說是和政府相關,國寶公安們要大網站的密碼庫來掃描國外的網站例如Gmail。這個事件點貌似能配合得上Google退出中國的事情,不過我還是覺得應該不至於。但誰知道呢。到最後,我最能接受的解釋就是:程序員們偷懶。好吧,雖然我覺得密碼加密這種事情也就會多不到10行的代碼。

還有新浪微博爆出來的SQL注入漏洞,也讓我詫異不已。我最近知道的SQL注入漏洞有連個,一個是新浪微博(嚴格來説好像是愛問知識人?不過這兩個系統用的是同一套用戶名密碼系統),還有一個,是華東理工大學機械與動力工程學院的網站。新浪微博那個漏洞,發現者等到新浪把這個漏洞修復了之後才把它爆出來;而華東理工大學機械與動力工程學院這個就沒有那麽幸運了,於是我就親身實驗了一把……SQL注入漏洞在我高二的時候踫到過一次,那時候我們學校剛上綫了一個學籍管理系統,還沒有正式使用。我碰巧忘記在哪裏看到SQL注入漏洞的原理了,於是我就在上面試了一下……於是就拿到那個系統的管理員權限了……印象中,那個系統好像直到我高三畢業也沒有正式使用,不知道現在怎樣了,也不知道是不是和我那次入侵有關(後來我直接告訴老師了- -b)

此後我做字符串拼接的時候就非常小心了,尤其是字符串拼接的某一段是用戶提交的内容的時候……

好吧,下面提點小Tip,關於密碼分級的,為不同的網站設不同的密碼是最保險的,如果做不到,那至少要有6套不相同的密碼。

級別最高的,長度至少8位,大小寫數字特殊字符都要有。國内外的郵箱、和錢相關的例如網銀、支付寳等。這個至少要三套,國内郵箱一套,國外郵箱一套,和錢相關的一套。

級別低一點的,普通網站,常用的網站,新浪微博、Twitter、QQ之類的,長度至少8位,至少不能是純數字,不能和鍵盤佈局相關(例如1q2w3e4r),也不能是英文單詞。這個至少兩套,國内網站一套,國外網站一套。

級別最低的,註冊一次之後基本上不會回來的,那麽就隨便了。

如果在上面三級的基礎上為不同網站加上網站名的前綴、後綴之類的就更保險了。

wsprintf和swprintf

昨天晚上寫一個小Demo,要把新加的一個浮點變量顯示在屏幕上。因爲我懶得調位置了,所以直接把原來顯示另外一個參數的代碼改一下拿來用,結果發現無論如何都打不出來。

踫到這種printf的東西,我第一反應就是指針啦堆棧啦之類的問題,所以我把相關的東西搬到程序的開頭去執行,然後打個斷點看結果。發現%f還是不起作用,直接把我的%吃掉了,顯示一個f出來。

後來着急回家,也沒有細究,用另外一個方法把這個問題繞過去了。

今天細究了才發現,原來原來那個代碼用的是wsprintf,我平時用的是swprintf……這兩個有什麽區別呢?wsprintf其實是一個宏,對應著兩個Windows API:wsprintfA和wsprintfW。最前面的那個w,不是寬字符(wide)的“w”,而是Windows的“w”。而swprintf是sprintf的寬字符版,是C的標準輸入輸出。而造成這個問題的原因,則在於windows的wsprintf,並不支持浮點數……

好吧。有空可以查一下,爲什麽Windows要搞這個API出來,爲什麽這個API還不支持浮點數……

 

在中國干實業果然很難

之前就知道在中國開公司這種費那種稅特別多,還有傳説中的五險一金,除了住房公積金之外,公司幫員工繳納的部分基本上是落不到員工手裏面的,名義上員工自己繳納的部分也基本上只有一個數字挂在自己名下而已。

然後,最近,公司要成立工會了。不過,所有會費由公司承擔。我搜了一下,員工承擔的會費是月薪的0.5%,單位承擔的會費,是所有員工總月薪的2%。會費按月繳納。而這2%呢,就要上繳一部分給各級工會組織了……其中基層工會(我公司)留用經費的60%,鎮、侷、公司、開發區、及街道辦事處留用10%,剩下 30% (含全國縂工會的 5% ,北京市縂工會 5% )上繳到區工會。

那麽公司爲啥這麽着急成立工會呢?可以看這裡《北京縂工會急收10万中小企業會費遭質疑》。簡單來説,就是北京縂工會試點讓稅務局幫忙收取會費,統一收取。收上來之後再將本來應該屬於公司的60%返回來,但是前提是,公司要成立工會組織,否則就不返還……

Google翻譯API失效了

Google翻譯API失效了,於是我的Blog就不能把我的Blog的標題自動翻譯成英文生成固定連接……我星期日才發現這個問題的。搜了一下,決定改用微軟的API。今天終于搞好了。

詳細内容看這裡:http://www.microsofttranslator.com/dev/

大家一起借錢給艾未未吧

艾未未的“逃稅”處罰通知單下來了,連稅帶滯納金一共1500万……申請行政復議要先把這錢交了或者提供擔保(這是什麽邏輯……)

雖然艾未未應該不缺這筆錢,不過還是可以把他變成一個行爲藝術嘛:D。現在艾未未的母親已經把詩人艾青的故居抵押出去了,價值800万,還剩下700万。星期五早上艾未未答應向大家借錢,短短兩天之内就籌到了200多万,超過了1万名網友通過各種手段借錢給艾未未,最有戲劇性的借款是有人把錢折成了紙飛機飛進艾未未在草場地的工作室的院子裏:D

由於最近買了房子,雖然艾未未承諾一會還,我在星期五晚上只借出去了152.2元,都不夠平均數阿,心意是最重要的。我就專心等待借條了哈哈。

看到一則搞笑漫畫:D

haha

中青寶真是個噁心的公司

這個“消滅賠錢貨”的宣言其實還好,無非就是説這位CEO很有個性罷了……
中青宝1
中青宝2

但是接下來的今年十一長假,這傢公司決定讓新員工“軍訓”
中青宝国庆军训

今天的新聞,則是對付兩個離職的員工,不知道算不算高管了,至少是中層以上了。
中青宝3
中青宝竞业2
中青宝竞业3
中青宝竞业4

另外,有傳言下面這兩張通知也是中青寳的,不過我不確定:
中青宝4
中青宝5

中微子Super Man?

今天和MM去聼了個講座,科學松鼠會組織的,主題就是最近很熱的中微子超光速的事情。請了中科院的一個理論物理學傢和一個實驗物理學傢:D

開始介紹了一下光速爲什麽不可被超越,然後也講了一下中微子到底是什麽東西,有什麽性質。

接著著重介紹了一下這次實驗,並且說距離和時間的測量應該都是沒有問題的,然後分析了一下可能的誤差出在哪裏。最可能的誤差是出在計算中微子團批次的時候,因爲一次能產生好多中微子,在意大利接收那邊,不可能探測到所有的中微子,也有可能探測到來自太空的中微子,所以他們是採用曲綫擬合的方式來確定接受到的中微子和發射方的對應關係,而擬合很可能就會產生比較大的誤差。

而且,這個和之前87年的一次超新星爆發的結果不吻合。那次爆發產生的中微子的速度和光速可以說是一樣的。當然了,超新星爆發的中微子和這次的中微子不是同一种中微子,能量也差了不少。PS:我一直以爲說的這個超新星爆發就是去年NASA說“足以震驚全人類”的那個產生30嵗的黑洞的那個超新星,這次算了算時間才發現,這是倆超新星……PSS:這個講座還提到,87年那次超新星爆發期間,平均一個人身体會被2億多個來自那個超新星的中微子穿過……

那位理論物理學傢顯得很高興,因爲這個結果很有意思。他說他更相信這只是由於我們未知的誤差造成的,不過他也有考慮為這個實驗結果炮製理論。他說“這差不多就是買彩票,中了就是諾貝爾獎”。

最後還討論了一下,假設光速真的被超越了,會發生什麽事情。首先要説明的就是因果律不會被打破。因爲“超光速能打破因果律”這個説法是根據狹義相對論推導出來的,如果超光速中微子真的存在,那麽相對論就要大改,基於相對論的“超光速能打破因果律”自然也就不成立了……

最後提問環節提了各種問題,有的問題很有趣,有的問題很科幻……其中有一個問題是“人的反應這麽慢,科學家們怎麽能把時間對得那麽準確的……”

竪版?

偉哥最近從中囯書店淘了本書版繁體書,每天上下班在城鐵上看。

今天他抱怨看得不習慣,我說這不錯了,至少有標點……

對於中國古書籍,我有三點不明白:1、爲什麽是竪的?2、爲什麽是從右到左?3、爲什麽兩千多年來(甚至更長)都沒有發明標點符號?

關於第一點,我一開始以爲是因爲古代書籍載體是竹簡。爲了方便展開,竹簡們竪著排。不過我後來想到,甲骨文的時候好像也是竪著的了吧?關於后兩點我沒有找到合理的解釋……雖然有的古籍在行外打點表示句讀,但一般是閲讀者自己所為,貌似相當於讀書筆記……連很多做注的書籍的“注”都嵌在了行内(一般註釋是一行正文的寬度寫兩行註釋),但是標點符號貌似卻一直沒有進入正文行内,直到清末民初……

然後我又突發奇想,想將我的Blog搞一個竪版的,沒有上下滾動條,只有左右滾動條,而且從右到左的……不知道有沒有瀏覽器支持。今天早上和偉哥討論的時候,想當然地以爲肯定是Chrome和Firefox應該支持了,但是IE估計玄乎。不過看了這個網頁之後,才驚訝地發現,這個居然是IE最早實現了的……這裡這裡有測試頁面,我發現我的FireFox還不支持,但是IE9就可以了……別的IE版本還沒有試……不過IE9實現的時候還是有一點問題,就是當需要出現橫向滾動條的時候,排版的時候貌似沒有計算橫向滾動條本身的高度,結果就又出現了竪向滾動條……而其實,可以用每行(其實是列)少排一個字來避免出現竪向滾動條的。

亞馬遜做電子商務是挺牛的

我那天在亞馬遜上稍微看了幾款移動硬盤,今天亞馬遜就給我發了Email過來推薦移動硬盤了……