密碼學簡介(一)

 本文簡單介紹密碼編碼學領域的一些基本原理,基本演算法和基本理念。僅針對原先對此領域無甚瞭解的朋友做入門之用。加密解密是資訊安全領域的基本技術,加解密系統中的基本概念從下面這張常規加密的簡化模型中就可以知道個大概。可以看出,明文輸入在密鑰K1的作用之下,通過密碼編譯演算法(如DES)轉換成密文,於是可以發送給通訊的接收方;接收方則可以通過解密演算法以及密鑰K2將密文恢複成明文。注意通訊內容經加密後,可採用公用通道(如互連網)傳輸。還應注意密鑰在加解密系統中起著關鍵作用,密鑰本身當然不能直接通過公

Cornell 學習法

     5R筆記法,又叫做康乃筆記法,是用產生這種筆記法的大學校名命名的。這一方法幾乎適用於一切講授或閱讀課,特別是對於聽課筆記,5R筆記法應是最佳首選。這種方法是記與學,思考與運用相結合的有效方法。具體包括以下幾個步驟:1.記錄(Record)。在聽講或閱讀過程中,在主欄(將筆記本的一頁分為左大右小兩部分,左側為主欄,右側為副欄)內盡量多記有意義的論據、概念等講課內容。2.簡化(Reduce)。下課以後,儘可能及早將這些論據、概念簡明扼要地概括(簡化)在回憶欄,即副欄。3.背誦(Recite

從一個修改私人變數的問題想到的

前幾天,在論壇裡看到一個文章,內容是:(原帖見:http://community.csdn.net/Expert/topic/5014/5014384.xml?temp=.3018152 )========================================class a{private: int k;};要求不用友元,不在這個類裡添加任何代碼,去訪問成員變數k。能做出的高手,請貼出完整源碼,以便大家測試。====================================

技術翻譯感悟——在“原汁原味”與“不露痕迹”之間尋求平衡

關於翻譯的品質,我們都知道嚴複先生在一百多年前提出了“信”、“達”、“雅”三重原則。這三重原則成為百年來譯者們追求的目標。實際上,關於翻譯,魯迅先生也有一段很令人信服的見解,它主要從“信”和“順”兩方面討論翻譯的品質。翻譯必須有異國情調,就是所謂洋氣。其實世界上也不會有完全歸化的譯文,倘有,就是貌合神離,從嚴辨別起來,它算不得翻譯。凡是翻譯,必須兼顧著兩面,一當然力求易解,一則儲存著原作的丰姿,但這儲存,卻又常常和易懂相矛盾:看不慣了。不過它原是洋鬼子,當然誰也看不慣,為比較的順眼起見,只能改換

單元測試的意義

一般認為,單元測試有四種作用:(1)使代碼可以放心修改和重構;(2)迫使程式員從調用者而不是實現者的角度設計軟體模組;(3)迫使程式員將軟體模組寫得易於測試和調用,從而有利於解耦;(4)測試本身可作為被測代碼的用法說明,從而替代了一部分文檔功能。 如果更深入地考慮單元測試的作用,它還可以從“使用者”和“需求”角度來闡釋。一般認為軟體的使用者就是使用軟體的人,而使用者需求通常表現為一紙文檔。然而,這個人在哪裡?他今天能來嗎?這份文檔是誰在維護?今天下午他能對著文檔幫你看看實現嗎?昨天有人改過這份文

關於代碼重構:一次改一點就好

 當要重構原來寫得亂糟糟、卻又可以啟動並執行代碼時,務實的方法是一次只改一點,改完了就運行一下。  慢慢地、可靠地分離不同功能模組的代碼。   如果不這樣,一下子就把所有的代碼改得面目全非,很可能出現 改完後的代碼不能運行、卻又找不出錯誤的情況。我就試過這樣,當我一下子按我的思路去改,改動非常大,有可能其中一些變數,或者是程式邏輯與原來的程式有出入,而我又找不出這些區別,導致花了很大心機還是沒有重構好。  

好長一句話

讀CS:APP,見一段落近乎一句呵成,雖不費解,仍覺恢宏,遂摘錄此長句: Buffer overflow attacks have become so pervasive and have caused so many problems with computer systems that modern compilers and operating systems have implemented mechanisms to make it more difficult to mount

一個不怎麼正確的程式加深一點你對this指標的理解

下面這個程式不見得在每種編譯器上都能通過編譯,既使通過了編譯,也不見得可以成功運行並輸出結果。讓人欣慰,更讓人鬱悶的是:它在我的Visual Studio 2005 SP1中,既能順利編譯,也能正常運行。它雖然投機取巧,胡作非為,蠅營狗苟,橫行霸道。但它至少能引發你的思考,加深一點你對this指標的理解,如果你還不是十分理解的話。#include <iostream>using namespace std;#pragma warning(disable:4213)class A

密碼學簡介(三)

報文簽別碼散列函數的另一種用法與報文鑒別有關。有時候,通訊雙方不僅關心通訊內容的私密性,對資訊是否被篡改過(內容完整性)更為關心;或者,他們根本不關心資訊的私密性而只關心資訊的完整性。亦或者,軟體的不同層次可能負責不同的任務,比如底層負責加解密,上層完成完整性鑒別。報文鑒別碼可以解決這類需要。報文鑒別碼,英文是Message Authentication

PuTTY Configuration Memo

(1) In "Terminal / Features", turn on "Disable application keypad mode", otherwise, the number keys on paypad would not behave well in applications such as vim.(2) In "Window / Appearance", in "Font settings", change the font to your favorite. Note

UML入門

轉自張傳波的部落格:http://www.cnblogs.com/umlonline/archive/2011/07/12/2104626.html 本文只針對UML菜鳥,你是中鳥、老鳥,請直接無視本文!你只需要閱讀完本章,就能從宏觀上掌握UML的知識,在你的腦袋中形成一張UML的藍圖。你能全面瞭解UML的基本知識,UML的各種圖的用途和概況,你能和實際工作遇到的問題聯絡起來,協助你進一步規划下一步的學習。 1.1  UML基礎知識掃盲UML這三個字母的全稱是Unified Modeling

TCP串連狀態及表示意義

查看網路狀態的命令為:netstat 在Windows下,如果需要查看TCP串連,可以用:netstat -p TCP;對應UDP串連,可以用:netstat -p UDP在Linux下,查看TCP串連的命令為:netstat -t;對應UDP串連為:netstat -uTCP串連的幾種可能狀態如下:1、LISTENING狀態 處於偵聽(LISTENING)狀態。

ftok() ENOENT: A component of path does not exist, or path is an empty string.

使用環境:Ubuntu 11.11  c++錯誤產生:使用ftok()函數來映射一個索引值,函數很簡單#include <sys/types.h>#include <sys/ipc.h>key_t ftok(const char *pathname, int proj_id);即傳遞一個路徑名,一個輔助數值即可唯一定位一個索引值代碼如下: //擷取對應的索引值 key_t key=ftok(SEM_PATH, 25);其中,#define SEM_PATH "

wchar_t類型的幾個函數

wchar_t是C/C++的字元資料類型,是一種擴充的字元儲存方式。在Windows下,wchar_t佔2個位元組(byte);在Linux下,wchar_t佔4個位元組wchar_t類型主要用在國際化程式的實現中,但它不等同於Unicode編碼。Unicode編碼的字元一般以wchar_t類型儲存。char是8位字元類型,最多隻能包含256種字元,許多外文字元集所含的字元數目超過256個,char型無法表示。標準C++中的wprintf()函數以及iostream類庫中的類和對象能提供wcha

COM組件初始化時的錯誤

使用環境:Windows XP、VC++出現錯誤:在用ADO組件進行資料庫操作時,由於是COM組件,需要初始化COM組件。使用函數:AfxOleInit()在編譯時間出現如下錯誤:error C2065: 'AfxOleInit' : undeclared identifier錯誤分析:看到很多使用AfxOleInit()的場合都是MFC情景下,因此需要包含一些afx開頭的標頭檔應該是缺少標頭檔在網上尋找,AfxOleInit()方法對應的標頭檔應該是:#include <afxdisp.

編譯錯誤:包含了標頭檔,但提示類未聲明(標頭檔相互包含引起)

使用環境:Ubuntu 11.10 G++錯誤出現:在編譯一個相互包含標頭檔的代碼(A.h中包含B.h,B.h中包含A.h)但是編譯出現錯誤,提示:A.h檔案中,B類未聲明;B.h檔案中,A類未聲明錯誤分析:在標頭檔中已經用#include

密碼學簡介(四)

C++加密解密庫資訊安全對各種資訊系統重要性無庸質疑。因此,用於實現軟體資訊系統的各種程式設計語言都會有相應的與加密解密有關的庫,有的語言(如Java)在其標準庫中直接提供基礎組件,有的語言(如C++)則需使用第三方庫。各種庫中帶“crypto-”首碼的模組,基本都是用來做這個的。值得一提的是,開源作業系統Linux的核心源碼中也有加解密模組,“crypto”源碼目錄下的便是。這不難理解:OS核心的安全性不言而喻。我本人平時從事C++編程較多,所以特地提及一下C++的加解密庫:Cypto++。C

咱也來做面試題(一)

身邊有些做Java開發的朋友,找工作時常常被考到一道關於字串的題目。題目倒是很基礎,然而根據朋友們事後的描述,有理由認為有的面試官自己都沒有完全搞清楚這個問題。此外,在CSDN論壇中我也多次看到一些朋友在這個問題上的迷惑。索性把自己的理解寫下來吧。 題目是一道簡單的小程式,像下面這樣:public class Test1 { public static void main(String args[]) { String s = new String("Hello"); System.out.

X: user not authorized to run the X server, aborting

在Linux下使用圖形介面時出現的問題:“X: user not authorized to run the X server, aborting”錯誤原因為:出於安全性的考慮,一般使用者沒有使用圖形介面的許可權This is just a simple tips to solve a error message when you start your X session with “startx” command as normal user. The error message may

gdb下watch的使用

這裡大概說下gdb偵錯工具時,watch的使用。至於原理尚不清楚,以後再做補充,還請見諒。watch通常需要和break,run,continue聯合使用。下面舉例說明:代碼如下:#include <stdio.h>int main(){ int a=0; for(int i=0; i<10; i++) a+=i;}調試的時候過程如下:(gdb) l1    #include <stdio.h>2    3    int main()4  

總頁數: 61357 1 .... 21322 21323 21324 21325 21326 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.