1 | /* |
打造一個書籤管理網站
最近系上的OJ不幸陣亡,打算自己東敲西打搞出一個新的批改系統,適逢這次的作業是個書籤管理網,需要登入介面及支援線上修改,不妨就拿來小試身手吧 ~
插入排序法
插入排序(insertion sort)是一種排序演算法,它將一個數列分成已排序與未排序兩個部分,透過不斷將未排序數列插入至已排序數列的正確位置達成,嗯…這個定義唸起來實在有些饒口,不如讓我們看個實例:
假設我們要由小到大排序數列:
1 | 25 49 22 33 47 |
短路求值
1 | /* |
古典密碼學
古典密碼學已經被電腦打爆了,但這跟它重不重要一點關係都沒有。
── 我的資安導師總是這樣嘮叨著……
最近重新改寫以前的Blog,終於理解這句話的意涵。舉凡近代加密演算法,多為古典密碼學手段的組合,只不過以前人力與能力都不及。
比方說你不會想把16個字母放進一個矩陣中,每個查表代換10次,再每行平移幾個單位,然後各別乘上一個矩陣,最後再和別的矩陣做XOR邏輯判斷。
Welcome to modern cryptography
這也太繁瑣了,正常人才不會想圈圈畫畫這些詭異的流程。不過,若將這些細項拆開來看,平移對應到移項式密碼,代換跟替換式密碼有關,矩陣運算則是來自希爾密碼,XOR就比較特別了些,但兩無關序列間的運算,可讓人追溯至維吉尼亞密碼的金鑰概念,這些都屬於古典加密的範疇。所以若想踏入近代密碼的殿堂,古典密碼當為一個必經的前哨站,助於釐清算法本身的原理與優劣勢。