Time of Update: 2018-12-03
目前密碼分為對稱密碼和非對稱密碼。其中,對稱密碼主要有DES、3DES、AES,非對稱密碼主要有RSA、ECC。 先舉個簡單的對稱密碼的例子。假設有一串數字123789,我們需要對其進行加密,加密的方法是每個數字加1,那麼加密前後如下: 明文123789 密文234890 解密過程為每個數字減1。
Time of Update: 2018-12-03
前邊講到非對稱密碼中的公開金鑰和私密金鑰,我們另公開金鑰為Kg,私密金鑰為Ks,Kg是公開的,別人可以直接獲得的,私密金鑰Kg是只有自己才知道的。 假設你是公司老總,你給公司員工寫了一封信,內容為C,現在你需要對該信的內容C進行簽名,以證明這封信是你寫的。下面是簽名和驗證過程。 簽名過程:用私密金鑰Ks對資料C進行簽名,產生簽名S,記做S=Ks(C),並將S||C發送給員工,其中||表示字串連結,也就是說該內容包括簽名S和內容C
Time of Update: 2018-12-03
翻譯來源:A Project Management Primeror “a guide to making projects work (v2.0)”by Nick
Time of Update: 2018-12-03
單例模式即Singleton模式,通過該模式,最多隻能建立該類的一個執行個體。先看一下簡單的版本:/*** @file Singleton.h* @brief * @author Don Hao* @date 2011-9-1 13:55:43* @version * <pre><b>copyright: </b></pre>* <pre><b>email: </b>hao.limin@gmail.com<
Time of Update: 2018-12-03
原文地址:http://www.scrumalliance.org/learn_about_scrumScrum是一種敏捷架構,可以完成複雜的項目。Scrum最初來源於軟體開發項目,不過同樣適用於任何複雜、創新性的工作,可應用到數不盡數的場合。Scrum架構看起來非常的簡單。用半分鐘的時間來認識一下Scrum架構Product Owner(產品負責人)建立按優先順序排列的任務清檔,稱之為Product Backlog(產品訂單)。在Sprint
Time of Update: 2018-12-03
其實,在GoF的23種設計模式中,並沒有簡單原廠模式這種說法,為了和原廠模式 、抽象原廠模式逐一對比,我們還是先從簡單原廠模式說起。“工廠”即用來生產“產品”,考慮以下需求:我需要通過一個類來建立一個蘋果,或者是建立一個梨,或者是建立一個。在上邊的需求中,這個可以建立蘋果、梨、香蕉的類即為簡單工廠類。同時,蘋果、梨、香蕉都為水果,可以繼承自水果類。設計如下:代碼如下:/*** @file SimpleFactory.h* @brief * @author Don Hao* @date 2011-
Time of Update: 2018-12-03
安裝 Eclipse Xtext基於Java實現,因此,首先要有Java運行環境(JRE)。 有兩種簡便的方法來搭建Xtext開發環境: 直接使用已預先配置好所有相關外掛程式的Eclipse;或 通過更新的方式,將Xtext安裝到您現有的Eclipse中安裝預先配置好Xtext的Eclipse 1. 到http://xtext.itemis.com選擇跟作業系統相匹配的安裝包 2. 將檔案解壓到所選擇的目錄下
Time of Update: 2018-12-03
生活中,我們將插頭插在插座上來取電,到了有些國家,插座格式不支援插頭,理論上,可以有以下三種做法:1. 將插頭改裝一下,使之符合插座;2. 將插座改裝一下,使之符合插頭;3.
Time of Update: 2018-12-03
一、引言上一節介紹了OpenMP中atomic互斥鎖機制的使用用法,本節介紹臨界區互斥鎖機制的使用用法。這裡的臨界區與Windows下的CriticalSection類似。 二、臨界區聲明方法#pragma omp critical [(name)] //[]表示名字可選{ //並行程式塊,同時只能有一個線程能訪問該並行程式塊} 例如:#prgama omp critical (a)a = b + c; 三、樣本#include <iostream>#include
Time of Update: 2018-12-03
上一節介紹了簡單原廠模式,這一節介紹一下原廠模式。原廠模式與簡單原廠模式的主要區別是:1 . 在簡單原廠模式中,通過一個具體的簡單工廠類來建立不同的產品,而在原廠模式中,有一個抽象的工廠類,然後派生出不同的具體的工廠類,每個具體的工廠類僅能建立一種產品。2. 在簡單原廠模式中,如果要建立一種新的產品,需要修改簡單工廠類,而在原廠模式中,僅需要繼承現有的抽象工廠類,不會破壞之前的封裝,擴充性提高了。UML圖如下:/*** @file Factory.h* @brief * @author
Time of Update: 2018-12-03
經常有人問,說CRC、MD5、SHA1都是計算一個校正值的,到底有何區別? 希望我下面的描述能讓大家有個瞭解。 相同點:CRC、MD5、SHA1都是通過對資料進行計算,來產生一個校正值,該校正值用來校正資料的完整性。 不同點:1. 演算法不同。CRC採用多項式除法,MD5和SHA1使用的是替換、輪轉等方法;2. 校正值的長度不同。CRC校正位的長度跟其多項式有關係,一般為16位或32位;MD5是16個位元組(128位);SHA1是20個位元組(160位);3.
Time of Update: 2018-12-03
瞭解了原廠模式,抽象原廠模式就不在話下。抽象原廠模式與原廠模式的區別是:原廠模式中的每個工廠僅能建立一個產品,而抽象原廠模式中的每個工廠可以建立多個產品。UML如所示:/*** @file AbstractFactory.h* @brief * @author Don Hao* @date 2011-9-1 16:40:09* @version * <pre><b>copyright: </b></pre>*
Time of Update: 2018-12-03
這裡的.NET三層架構指BLL、DAL、Model,這種架構方式也可以映射到其他語言以及其他應用。 這種架構的好處在於層次模組間松耦合,通過定義不同層之間的通訊介面,不同的開發人員可以並行開發各自負責的模組。就我個人的經驗來看,這種層次架構的劃分,在提高開發效率方面,不僅局限於松耦合帶來的開發效率提升,而是將其作為一種標準,然後採用相應的自動化代碼產生工具,便可達到事半功倍的效果。 下面就一個簡單的例子來說明其開發過程: 1.
Time of Update: 2018-12-03
大概是在04年,某天晚上我們上《密碼學技術與原理》課程。 老師剛站上講台,樂呵呵的對我們說, “我剛參加了一個國際密碼學學術會議,有個人竟然聲稱自己破解了MD5演算法,真是個笑話。這個演算法怎麼可能被破解呢。” 當時我們也把這件事情當做了一個笑話。然而,後來事實證明,這不是笑話,就是王小雲當時破解了MD5。從這件事情中,我們要知道: 1. 自己做夢都做不到的事情,也許別人可以做到; 2.
Time of Update: 2018-12-03
上一篇:擁抱品質:代碼品質 之 魔鬼數字老太太的裹腳布 –
Time of Update: 2018-12-03
iPhone開發廣義上來講,採用MVC模型,即Model-View-Controller。其中: Model為資料模型,比如使用者設定檔; View為顯示的介面元素,比如一個按鈕;
Time of Update: 2018-12-03
原文地址:http://rest.elkstein.org/Learn REST: A Tutorial A fast-training course for REST - Representational State Transfer, a new approach to systems architecture and a lightweight alternative to web servicesREST——表示性狀態轉移——快速學習教程,一種新的系統架構方法,可以替代Web
Time of Update: 2018-12-03
在電腦DIY愛好者中,ATI/NVIDIA、AMD/INTEL各自的粉絲團 紮堆兒PK 的現象是非常激烈的。 如果有一篇文章出現對某一技術的傾向性,便會立刻被另一陣營粉絲的吐沫所淹沒。 在咱們軟體界,這種現象雖然不是那麼極端,但也絕不少見, 我見過不少熱愛一種語言的,拚命貶低另外一種語言, 似乎不把對方說得一無是處,就不足以體現自己所在陣營的“優秀”。 技術真的可以簡單的貼上“好的”或者“壞的”這樣的標籤嗎?一定不是! 每一項技術都有其出現的背景和其所擅長的領域,
Time of Update: 2018-12-03
準備啟動一個開源項目:技術族譜。 是什嗎?技術族譜,該項目提供一種手段,描述技術領域中的概念和知識點的關係,並以此關係網為基礎,擴充相關應用。為什嗎?我是做電腦行業的,就先從我看到的現象說起。 目前電腦技術領域,各種名詞、概念、技術、縮寫層出不窮,一個新手,想要開始學習一項知識,面對如此多的概念,很容易產生一種迷失感。 以JEE為例,基本的知識點就有javabean,SERVLET,JSP,JSTL,JSF,JAXP,JDBC,JMS,EJB
Time of Update: 2018-12-03
曾經有朋友在我的一篇十年總結後跟帖問: 樓主是如何快速學習新知識的?????? 我答應過要寫一篇文章的,但醞釀了很久,感覺寫起來非常吃力, 不過還是要兌現自己的承諾,有興趣的朋友將就看看吧。 很多大學都有“電腦科學與技術”系,而電腦這門學科,技術性遠高於科學性, 有人會問,這種區分會影響學習嗎? 我的回答是:肯定會,影響思考問題的方式。 在科學領域,比如化學,如果你問:為什麼“苯”的分子結構是這樣的? 這個問題實際上是沒有答案的,因為大自然造物就是這麼設計的,