Node 安裝

如何在 Ubuntu 14.04 伺服器上安裝 Node.js             出處   

如果倉庫中的軟體包符合你的需求,那麼你只需執行這些操作即可設定 Node.js。大多數情況下,你還需要安裝npm,也就是 Node.js 軟體包管理器。你可以輸入以下命令來執行此操作:

sudo apt-get update
sudo apt-get install nodejs
sudo apt-get install npm
(npm是node裡安裝的工具程式)                 20250702

安裝Express+

Express是Node.js上最流行的Web開發框架,正如它的名字一樣,透過使用它,我們可以快速地開發一個Web應用。

sudo npm install -g express-generator

新增專案 blog

建立一個資料夾
mkdir blog
cd blog
Window 系統下 安裝 express    

express -e blog
npm install

執行

node ./bin/www
Linux系統下安裝express
sudo apt update
sudo apt install nodejs npm -y

確認安裝成功:

nodejs -v
npm -v
建立你的專案資料夾
mkdir my-express-app
cd my-express-app

初始化 npm
npm init -y

安裝 Express
npm install express

建立基本的 Express 應用
建立一個 index.js

執行應用
nodejs index.js

圖說演算法使用JavaScript(三十九)

11-2-3摺疊法
摺疊法是將資料轉換成一串數字後,先將這串數字先拆成數個部分,最後再把它們加起來,就可以計算出這個鍵值的Bucket Address。例如有一資料,轉換成數字後為2365479125443,若以每4個字為一個部分則可拆為:2365,4791,2544,3。將四組數字加起來即為索引值:

在摺疊法中有兩個作法,如上例直接將每一部分相加所得的值作為其bucketaddress,這種作法我們稱為(移動摺疊法)。但雜湊法的設計原則之一就是降低碰撞,如果您希望降低碰撞的機會,我們可以將上述每一部分的數字中的奇數未段或偶數未段反轉,在行相加來取得其bucket address,這種改良式的作法我們稱為(邊界摺疊法 folding at the boundaries)。

請看下列的說明:

11-2-4數位分析法

數位分析法適用於資料不會更改,且為數字型態的資料,在決定雜湊函數時先逐一檢查資料的相對位置及分布情形,將重複性高的部分刪除。例如下面這個電話表,它是相當有規則性的,除了區碼全部是07外,在中間三個數字的變化也不大,假設位址空間大小m=999,我們必須從下列數字擷取適當的數字,即數字比較不集中,分布範圍較為平均(或稱亂數高),最後決定取最後那四個數字的末三碼。故最後可得雜湊表為:

圖說演算法使用JavaScript(三十八)

完美實戰安全性演算法

對於資訊安全而言,很難有一個十分嚴謹而明確的定義或標準。簡單來說,資訊安全(Information Security)的基本功能就是必須具備以下四種特性:

*秘密性(confidentiality):表示交易相關資料必須保密,當資料傳遞時,確保資料在網路上傳送不會遭截取、窺竊而洩漏資料內容,除了被授權的人,在網路上不怕被攔截或偷窺,而損害其秘密性。
*完整性(integrity):表示當資料送達時必須保證資料沒有被竄改的疑慮,訊息如遭竄改時,該筆訊息就會無效,例如由甲端傳至乙端的資料有沒有被竄改,乙端在收訊時,立刻知道資料是否完整無誤。
*認證性(authentication):表示當傳送方送出資料時,就必須能確認傳送者的身分是否為冒名,例如傳送方無法冒名傳送資料,持卡人、商家、發卡行、收單行和支付閘道,都必須申請數位憑證進行身分識別。
*不可否認性(non-repudiation):表示保證使用者無法否認他所完成過之資料傳送行為的一種機制,必須不易被複製及修改,就是指無法否認其傳送或接受訊息行為,例如收到金錢不能推說沒收到;同樣前用掉不能推收遺失,不能否認其未使用過。

11-1 輕鬆學會資料加密

將資料轉換成不具任何意義的代碼,而這個處理過程就是(加密Encrypt)。資料再加密前稱為(明文 Plain text),經過加密後則稱為(密文 Cipher text)。
經過加密的資料在送抵目的端後,必須經過(解密 Decrypt)程序,才能將資料還原成原來的內容,而這個加/解密的機制則稱為(金鑰Key)。至於資料加密及解密的流程如下所示:

11-1-1 對稱鍵值加密系統

對稱鍵值機加密系統(Symmetrical key Encryption)又稱為單一鍵值加密系統(Single key Encryption)或秘密金鑰系統(Secret Key)。這種加密系統的運作方式,是由資料傳送者利用祕密金鑰(Secret Key)將文件加密,使文件成為一堆的亂碼後,再加以傳送。而接受者收到這個經過加密的密文後,再使用相同的祕密金鑰,將文件還原成原來的模樣。因為如果者B用這一組密碼解開文件,那麼就能確定這份文件是由使用者A加密後傳送過去,如下圖所示:

這種加密系統的運作方式較為單純,因此不論在加密及解密上的處理速度都相當快速。常見的對稱鍵值加密系統演算法有DES(Data Encryption Standard,資料加密標準)、Triple DES、IDEA(Internation Data Encryption Algorithm,國際資料加密演算法)等。

11-1-2非對稱鍵值加密系統與RSA演算法

(非對稱性加密系統)是目前較為普遍,也是金融界應用上最安全的加密系統,或稱為(雙鍵加密系統 Double key Encryption),這種加密系統主要的運作方式,是以兩把不同的金鑰(key)來對文件進行加/解密。例如使用者A要傳送一份新的文件給文件使用者B,使用者A會利用使用者B的公開金鑰來加密,並將祕文傳送給使用者B。當使用者收到密文後,再利用自己的私密金鑰解密。如下圖所示:

例如RSA(Rivest-Shamir-Adleman)是加密演算法中是一種非對稱加密演算法,在RSA演算法之前,加密方法幾乎都是對稱型的,非對稱是因為它利用兩個不同的鑰匙,一把叫公開金鑰,另外一把較私密金鑰。1977年由Ron Rivest、Adi Shamir 和 Leonard Adleman 一起提出的,RSA就是由三人姓氏開頭字母所組成。

11-2 一學就懂得雜湊演算法

雜湊法是利用雜湊函數來計算一個鍵值所對應的位址,進而建立雜湊表格,且依賴雜湊函數來搜尋找到個鍵值存放在表格中的位址,搜尋速度與資料多少無關,在沒有碰撞和溢位下,一次讀取即可,更包括保密性高,因為不事先知道雜湊函數就無法搜尋的優點。
選擇雜湊函數時,要特別注意不宜過於複雜,設計原則上至少必須符合計算速度快與碰撞頻率盡量小兩項特點。常見的雜湊法有除法、中間平方法、摺疊法及數位分析法。

11-2-1  除法

最簡單的雜湊法是將資料除以某一個常數後,取餘數來當索引。例如在一個有13個位置的陣列中,只使用到7個位址,值分別是12,65,70,99,33,67,48。那我們就可以把陣列內的值除以13,並以其餘數來當索引,我們可以用下例式子來表示:

h(key)=key mod B

在這個例子中,我們所使用的B=13。一般而言,會建議各位在選擇B時,B最好是質數。而上例所建立出來的雜奏表如所示:

以下我們將用除法作為雜湊函數,將下列數字儲存在11空間:323,458,340,28,969,77,請問其雜湊表外觀為何?
令雜湊函數為h(key)=key mod B,其中B=11為一質數,這個函數的計算結果介於0-10之間(包括0及10二數),則h(323)=4、h(458)=7、h(25)=3、h(340)=10、h(28)=6、h(969)=1、h(77)=0。

11-2-2 中間平方法

中間平方法和除法相當類似,它是把資料乘以自己,之後再取中間的某段數字做索引。在下例中我們用中間平方法,並將它放在100個位址空間,其操作步驟如下:

1. 將12,65,70,99,33,67,51平方後如下:

144,4225,4900,9801,1089,4489,2601

2.我們取百位數及十位數作為鍵值,分別為:

14,22,90,80,08,48,60

上述這7個數字的數列就是對應原先12,65,70,99,33,67,51等7個數字存放在100個位址空間的索引鍵值,即

f(14)=12
f(22)=65
f(90)=70
f(80)=99
f(08)=33
f(48)=67
f(60)=51