導航:首頁 > 源碼編譯 > 校驗演算法的缺點是什麼

校驗演算法的缺點是什麼

發布時間:2024-11-26 21:10:20

1. 常用數據校驗方法有哪些

奇偶校驗」。內存中最小的單位是比特,也稱為「位」,位有隻有兩種狀態分別以1和0來標示,每8個連續的比特叫做一個位元組(byte)。不帶奇偶校驗的內存每個位元組只有8位,如果其某一位存儲了錯誤的值,就會導致其存儲的相應數據發生變化,進而導致應用程序發生錯誤。而奇偶校驗就是在每一位元組(8位)之外又增加了一位作為錯誤檢測位。在某位元組中存儲數據之後,在其8個位上存儲的數據是固定的,因為位只能有兩種狀態1或0,假設存儲的數據用位標示為1、1、 1、0、0、1、0、1,那麼把每個位相加(1+1+1+0+0+1+0+1=5),結果是奇數,那麼在校驗位定義為1,反之為0。當CPU讀取存儲的數據時,它會再次把前8位中存儲的數據相加,計算結果是否與校驗位相一致。從而一定程度上能檢測出內存錯誤,奇偶校驗只能檢測出錯誤而無法對其進行修正,同時雖然雙位同時發生錯誤的概率相當低,但奇偶校驗卻無法檢測出雙位錯誤。

MD5的全稱是Message-Digest Algorithm 5,在90年代初由MIT的計算機科學實驗室和RSA Data Security Inc 發明,由 MD2/MD3/MD4 發展而來的。MD5的實際應用是對一段Message(位元組串)產生fingerprint(指紋),可以防止被「篡改」。舉個例子,天天安全網提供下載的MD5校驗值軟體WinMD5.zip,其MD5值是,但你下載該軟體後計算MD5 發現其值卻是,那說明該ZIP已經被他人修改過,那還用不用該軟體那你可自己琢磨著看啦。

MD5廣泛用於加密和解密技術上,在很多操作系統中,用戶的密碼是以MD5值(或類似的其它演算法)的方式保存的,用戶Login的時候,系統是把用戶輸入的密碼計算成MD5值,然後再去和系統中保存的MD5值進行比較,來驗證該用戶的合法性。

MD5校驗值軟體WinMD5.zip漢化版,使用極其簡單,運行該軟體後,把需要計算MD5值的文件用滑鼠拖到正在處理的框里邊,下面將直接顯示其MD5值以及所測試的文件名稱,可以保留多個文件測試的MD5值,選定所需要復制的MD5值,用CTRL+C就可以復制到其它地方了。
參考資料:http://..com/question/3933661.html

CRC演算法原理及C語言實現 -來自(我愛單片機

摘 要 本文從理論上推導出CRC演算法實現原理,給出三種分別適應不同計算機或微控制器硬體環境的C語言程序。讀者更能根據本演算法原理,用不同的語言編寫出獨特風格更加實用的CRC計算程序。
關鍵詞 CRC 演算法 C語言
1 引言
循環冗餘碼CRC檢驗技術廣泛應用於測控及通信領域。CRC計算可以靠專用的硬體來實現,但是對於低成本的微控制器系統,在沒有硬體支持下實現CRC檢驗,關鍵的問題就是如何通過軟體來完成CRC計算,也就是CRC演算法的問題。
這里將提供三種演算法,它們稍有不同,一種適用於程序空間十分苛刻但CRC計算速度要求不高的微控制器系統,另一種適用於程序空間較大且CRC計算速度要求較高的計算機或微控制器系統,最後一種是適用於程序空間不太大,且CRC計算速度又不可以太慢的微控制器系統。
2 CRC簡介
CRC 校驗的基本思想是利用線性編碼理論,在發送端根據要傳送的k位二進制碼序列,以一定的規則產生一個校驗用的監督碼(既CRC碼)r位,並附在信息後邊,構成一個新的二進制碼序列數共(k+r)位,最後發送出去。在接收端,則根據信息碼和CRC碼之間所遵循的規則進行檢驗,以確定傳送中是否出錯。
16位的CRC碼產生的規則是先將要發送的二進制序列數左移16位(既乘以 )後,再除以一個多項式,最後所得到的余數既是CRC碼,如式(2-1)式所示,其中B(X)表示n位的二進制序列數,G(X)為多項式,Q(X)為整數,R(X)是余數(既CRC碼)。
(2-1)
求CRC 碼所採用模2加減運演算法則,既是不帶進位和借位的按位加減,這種加減運算實際上就是邏輯上的異或運算,加法和減法等價,乘法和除法運算與普通代數式的乘除法運算是一樣,符合同樣的規律。生成CRC碼的多項式如下,其中CRC-16和CRC-CCITT產生16位的CRC碼,而CRC-32則產生的是32位的CRC碼。本文不討論32位的CRC演算法,有興趣的朋友可以根據本文的思路自己去推導計算方法。
CRC-16:(美國二進制同步系統中採用)
CRC-CCITT:(由歐洲CCITT推薦)
CRC-32:

接收方將接收到的二進制序列數(包括信息碼和CRC碼)除以多項式,如果余數為0,則說明傳輸中無錯誤發生,否則說明傳輸有誤,關於其原理這里不再多述。用軟體計算CRC碼時,接收方可以將接收到的信息碼求CRC碼,比較結果和接收到的CRC碼是否相同。

3 按位計算CRC
對於一個二進制序列數可以表示為式(3-1):
(3-1)
求此二進制序列數的CRC碼時,先乘以 後(既左移16位),再除以多項式G(X),所得的余數既是所要求的CRC碼。如式(3-2)所示:
(3-2)
可以設: (3-3)
其中 為整數, 為16位二進制余數。將式(3-3)代入式(3-2)得:

(3-4)
再設: (3-5)
其中 為整數, 為16位二進制余數,將式(3-5)代入式(3-4),如上類推,最後得到:
(3-6)
根據CRC的定義,很顯然,十六位二進制數 既是我們要求的CRC碼。
式(3 -5)是編程計算CRC的關鍵,它說明計算本位後的CRC碼等於上一位CRC碼乘以2後除以多項式,所得的余數再加上本位值除以多項式所得的余數。由此不難理解下面求CRC碼的C語言程序。*ptr指向發送緩沖區的首位元組,len是要發送的總位元組數,0x1021與多項式有關。
[code]
unsigned int cal_crc(unsigned char *ptr, unsigned char len) {
unsigned char i;
unsigned int crc=0;
while(len--!=0) {
for(i=0x80; i!=0; i/=2) {
if((crc&0x8000)!=0) {crc*=2; crc^=0x1021;} /* 余式CRC乘以2再求CRC */
else crc*=2;
if((*ptr&i)!=0) crc^=0x1021; /* 再加上本位的CRC */
}
ptr++;
}
return(crc);
}
[code]
按位計算CRC雖然代碼簡單,所佔用的內存比較少,但其最大的缺點就是一位一位地計算會佔用很多的處理器處理時間,尤其在高速通訊的場合,這個缺點更是不可容忍。因此下面再介紹一種按位元組查錶快速計算CRC的方法。
4 按位元組計算CRC
不難理解,對於一個二進制序列數可以按位元組表示為式(4-1),其中 為一個位元組(共8位)。
(4-1)
求此二進制序列數的CRC碼時,先乘以 後(既左移16位),再除以多項式G(X),所得的余數既是所要求的CRC碼。如式(4-2)所示:
(4-2)
可以設: (4-3)
其中 為整數, 為16位二進制余數。將式(4-3)代入式(4-2)得:
(4-4)
因為:
(4-5)
其中 是 的高八位, 是 的低八位。將式(4-5)代入式(4-4),經整理後得:
(4-6)
再設: (4-7)
其中 為整數, 為16位二進制余數。將式(4-7)代入式(4-6),如上類推,最後得:
(4-
很顯然,十六位二進制數 既是我們要求的CRC碼。
式(4 -7)是編寫按位元組計算CRC程序的關鍵,它說明計算本位元組後的CRC碼等於上一位元組余式CRC碼的低8位左移8位後,再加上上一位元組CRC右移8位(也既取高8位)和本位元組之和後所求得的CRC碼,如果我們把8位二進制序列數的CRC全部計算出來,放如一個表裡,採用查表法,可以大大提高計算速度。由此不難理解下面按位元組求CRC碼的C語言程序。*ptr指向發送緩沖區的首位元組,len是要發送的總位元組數,CRC余式表是按0x11021多項式求出的。
[code]
unsigned int cal_crc(unsigned char *ptr, unsigned char len) {
unsigned int crc;
unsigned char da;
unsigned int crc_ta[256]={ /* CRC余式表 */
0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,
0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,
0x 1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,
0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de,
0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485,
0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,
0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4,
0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc,
0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,
0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b,
0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12,
0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,
0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41,
0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49,
0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,
0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78,
0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f,
0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,
0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e,
0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256,
0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,
0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,
0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c,
0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,
0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab,
0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3,
0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,
0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92,
0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9,
0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,
0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8,
0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0
};

crc=0;
while(len--!=0) {
da=(uchar) (crc/256); /* 以8位二進制數的形式暫存CRC的高8位 */
crc<<=8; /* 左移8位,相當於CRC的低8位乘以 */
crc^=crc_ta[da^*ptr]; /* 高8位和當前位元組相加後再查表求CRC ,再加上以前的CRC */
ptr++;
}
return(crc);
}
很顯然,按位元組求CRC時,由於採用了查表法,大大提高了計算速度。但對於廣泛運用的8位微處理器,代碼空間有限,對於要求256個CRC余式表(共512位元組的內存)已經顯得捉襟見肘了,但CRC的計算速度又不可以太慢,因此再介紹下面一種按半位元組求CRC的演算法。
5 按半位元組計算CRC
同樣道理,對於一個二進制序列數可以按位元組表示為式(5-1),其中 為半個位元組(共4位)。
(5-1)
求此二進制序列數的CRC碼時,先乘以 後(既左移16位),再除以多項式G(X),所得的余數既是所要求的CRC碼。如式(4-2)所示:
(5-2)
可以設: (5-3)
其中 為整數, 為16位二進制余數。將式(5-3)代入式(5-2)得:
(5-4)
因為:
(5-5)
其中 是 的高4位, 是 的低12位。將式(5-5)代入式(5-4),經整理後得:
(5-6)
再設: (5-7)
其中 為整數, 為16位二進制余數。將式(5-7)代入式(5-6),如上類推,最後得:
(5-
很顯然,十六位二進制數 既是我們要求的CRC碼。
式(5 -7)是編寫按位元組計算CRC程序的關鍵,它說明計算本位元組後的CRC碼等於上一位元組CRC碼的低12位左移4位後,再加上上一位元組余式CRC右移4位(也既取高4位)和本位元組之和後所求得的CRC碼,如果我們把4位二進制序列數的CRC全部計算出來,放在一個表裡,採用查表法,每個位元組算兩次(半位元組算一次),可以在速度和內存空間取得均衡。由此不難理解下面按半位元組求CRC碼的C語言程序。*ptr指向發送緩沖區的首位元組,len是要發送的總位元組數,CRC余式表是按0x11021多項式求出的。
unsigned cal_crc(unsigned char *ptr, unsigned char len) {
unsigned int crc;
unsigned char da;
unsigned int crc_ta[16]={ /* CRC余式表 */
0x0000,0x1021,0x2042,0x3063,0x4084,0x50a5,0x60c6,0x70e7,
0x8108,0x9129,0xa14a,0xb16b,0xc18c,0xd1ad,0xe1ce,0xf1ef,
}

crc=0;
while(len--!=0) {
da=((uchar)(crc/256))/16; /* 暫存CRC的高四位 */
crc<<=4; /* CRC右移4位,相當於取CRC的低12位)*/
crc^=crc_ta[da^(*ptr/16)]; /* CRC的高4位和本位元組的前半位元組相加後查表計算CRC,
然後加上上一次CRC的余數 */
da=((uchar)(crc/256))/16; /* 暫存CRC的高4位 */
crc<<=4; /* CRC右移4位, 相當於CRC的低12位) */
crc^=crc_ta[da^(*ptr&0x0f)]; /* CRC的高4位和本位元組的後半位元組相加後查表計算CRC,
然後再加上上一次CRC的余數 */
ptr++;
}
return(crc);
}
[code]
5 結束語
以上介紹的三種求CRC的程序,按位求法速度較慢,但佔用最小的內存空間;按位元組查表求CRC的方法速度較快,但佔用較大的內存;按半位元組查表求CRC的方法是前兩者的均衡,即不會佔用太多的內存,同時速度又不至於太慢,比較適合8位小內存的單片機的應用場合。以上所給的C程序可以根據各微處理器編譯器的特點作相應的改變,比如把CRC余式表放到程序存儲區內等。[/code]

hjzgq 回復於:2003-05-15 14:12:51
CRC32演算法學習筆記以及如何用java實現 出自:csdn bootcool 2002年10月19日 23:11 CRC32演算法學習筆記以及如何用java實現

CRC32演算法學習筆記以及如何用java實現

一:說明

論壇上關於CRC32校驗演算法的詳細介紹不多。前幾天偶爾看到Ross N. Williams的文章,總算把CRC32演算法的來龍去脈搞清楚了。本來想把原文翻譯出來,但是時間參促,只好把自己的一些學習心得寫出。這樣大家可以更快的了解CRC32的主要思想。由於水平有限,還懇請大家指正。原文可以訪問:http://www.repairfaq.org/filipg/LINK/F_crc_v31.html 。

二:基本概念及相關介紹

2.1 什麼是CRC

在遠距離數據通信中,為確保高效而無差錯地傳送數據,必須對數據進行校驗即差錯控制。循環冗餘校驗CRC(Cyclic Rendancy Check/Code)是對一個傳送數據塊進行校驗,是一種高效的差錯控制方法。

CRC校驗採用多項式編碼方法。多項式乘除法運算過程與普通代數多項式的乘除法相同。多項式的加減法運算以2為模,加減時不進,錯位,如同邏輯異或運算。

2.2 CRC的運算規則

CRC加法運算規則:0+0=0

0+1=1

1+0=1

1+1=0 (注意:沒有進位)

CRC減法運算規則:

0-0=0

0-1=1

1-0=1

1-1=0

CRC乘法運算規則:

0*0=0

0*1=0

1*0=0

1*1=1

CRC除法運算規則:

1100001010 (注意:我們並不關心商是多少。)

_______________

10011 11010110110000

10011,,.,,....

-----,,.,,....

10011,.,,....

10011,.,,....

-----,.,,....

00001.,,....

00000.,,....

-----.,,....

00010,,....

00000,,....

-----,,....

00101,....

00000,....

-----,....

01011....

00000....

-----....

10110...

10011...

-----...

01010..

00000..

-----..

10100.

10011.

-----.

01110

00000

-----

1110 = 余數

2.3 如何生成CRC校驗碼

(1) 設G(X)為W階,在數據塊末尾添加W個0,使數據塊為M+ W位,則相應的多項式為XrM(X);

(2) 以2為模,用對應於G(X)的位串去除對應於XrM(X)的位串,求得余數位串;

(3) 以2為模,從對應於XrM(X)的位串中減去余數位串,結果就是為數據塊生成的帶足夠校驗信息的CRC校驗碼位串。

2.4 可能我們會問那如何選擇G(x)

可以說選擇G(x)不是一件很容易的事。一般我們都使用已經被大量的數據,時間檢驗過的,正確的,高效的,生成多項式。一般有以下這些:

16 bits: (16,12,5,0) [X25 standard]

(16,15,2,0) ["CRC-16"]

32 bits: (32,26,23,22,16,12,11,10,8,7,5,4,2,1,0) [Ethernet]

三: 如何用軟體實現CRC演算法

現在我們主要問題就是如何實現CRC校驗,編碼和解碼。用硬體實現目前是不可能的,我們主要考慮用軟體實現的方法。

以下是對作者的原文的翻譯:

我們假設有一個4 bits的寄存器,通過反復的移位和進行CRC的除法,最終該寄存器中的值就是我們所要求的余數。

3 2 1 0 Bits

+---+---+---+---+

Pop <-- | | | | | <----- Augmented message(已加0擴張的原始數據)

+---+---+---+---+

1 0 1 1 1 = The Poly

(注意: The augmented message is the message followed by W zero bits.)

依據這個模型,我們得到了一個最最簡單的演算法:

把register中的值置0.

把原始的數據後添加r個0.

While (還有剩餘沒有處理的數據)

Begin

把register中的值左移一位,讀入一個新的數據並置於register的0 bit的位置。

If (如果上一步的左移操作中的移出的一位是1)

register = register XOR Poly.

End

現在的register中的值就是我們要求的crc余數。

我的學習筆記:

可為什麼要這樣作呢?我們從下面的實例來說明:

1100001010

_______________

10011 11010110110000

10011,,.,,....

-----,,.,,....

-》 10011,.,,....

10011,.,,....

-----,.,,....

-》 00001.,,....

00000.,,....

-----.,,....

00010,,....

00000,,....

-----,,....

00101,....

00000,....

我們知道G(x)的最高位一定是1,而商1還是商0是由被除數的最高位決定的。而我們並不關心商究竟是多少,我們關心的是余數。例如上例中的G(x)有5 位。我們可以看到每一步作除法運算所得的余數其實就是被除數的最高位後的四位於G(x)的後四位XOR而得到的。那被除數的最高位有什麼用呢?我們從打記號的兩個不同的余數就知道原因了。當被除數的最高位是1時,商1然後把最高位以後的四位於G(x)的後四位XOR得到余數;如果最高位是0,商0然後把被除數的最高位以後的四位於G(x)的後四位XOR得到余數,而我們發現其實這個余數就是原來被除數最高位以後的四位的值。也就是說如果最高位是0就不需要作XOR的運算了。到這我們總算知道了為什麼先前要這樣建立模型,而演算法的原理也就清楚了。

以下是對作者的原文的翻譯:

可是這樣實現的演算法卻是非常的低效。為了加快它的速度,我們使它一次能處理大於4 bit的數據。也就是我們想要實現的32 bit的CRC校驗。我們還是假設有和原來一樣的一個4 "bit"的register。不過它的每一位是一個8 bit的位元組。

3 2 1 0 Bytes

+----+----+----+----+

Pop <-- | | | | | <----- Augmented message

+----+----+----+----+

1<------32 bits------> (暗含了一個最高位的「1」)

根據同樣的原理我們可以得到如下的演算法:

While (還有剩餘沒有處理的數據)

Begin

檢查register頭位元組,並取得它的值

求不同偏移處多項式的和

register左移一個位元組,最右處存入新讀入的一個位元組

把register的值和多項式的和進行XOR運算

End

我的學習筆記:

可是為什麼要這樣作呢? 同樣我們還是以一個簡單的例子說明問題:

假設有這樣的一些值:

當前register中的值: 01001101

4 bit應該被移出的值:1011

生成多項式為: 101011100

Top Register

---- --------

1011 01001101

1010 11100 + (CRC XOR)

-------------

0001 10101101

首4 bits 不為0說明沒有除盡,要繼續除:

0001 10101101

1 01011100 + (CRC XOR)

-------------

0000 11110001

^^^^

首4 bits 全0說明不用繼續除了。

那按照演算法的意思作又會有什麼樣的結果呢?

1010 11100

1 01011100+

-------------

1011 10111100

1011 10111100

1011 01001101+

-------------

0000 11110001

現在我們看到了這樣一個事實,那就是這樣作的結果和上面的結果是一致的。這也說明了演算法中為什麼要先把多項式的值按不同的偏移值求和,然後在和 register進行異或運算的原因了。另外我們也可以看到,每一個頭位元組對應一個值。比如上例中:1011,對應01001101。那麼對於 32 bits 的CRC 頭位元組,依據我們的模型。頭8 bit就該有 2^8個,即有256個值與它對應。於是我們可以預先建立一個表然後,編碼時只要取出輸入數據的頭一個位元組然後從表中查找對應的值即可。這樣就可以大大提高編碼的速度了。

+----+----+----+----+

+-----< | | | | | <----- Augmented message

| +----+----+----+----+

| ^

| |

| XOR

| |

| 0+----+----+----+----+

v +----+----+----+----+

| +----+----+----+----+

| +----+----+----+----+

| +----+----+----+----+

| +----+----+----+----+

| +----+----+----+----+

+-----> +----+----+----+----+

+----+----+----+----+

+----+----+----+----+

+----+----+----+----+

+----+----+----+----+

255+----+----+----+----+

以下是對作者的原文的翻譯:

上面的演算法可以進一步優化為:

1:register左移一個位元組,從原始數據中讀入一個新的位元組.

2:利用剛從register移出的位元組作為下標定位 table 中的一個32位的值

3:把這個值XOR到register中。

4:如果還有未處理的數據則回到第一步繼續執行。

用C可以寫成這樣:

r=0;

while (len--)
r = ((r << | p*++) ^ t[(r >> 24) & 0xFF];

可是這一演算法是針對已經用0擴展了的原始數據而言的。所以最後還要加入這樣的一個循環,把W個0加入原始數據。

我的學習筆記:

注意不是在預處理時先加入W個0,而是在上面演算法描述的循環後加入這樣的處理。

for (i=0; i<W/4; i++)
r = (r << ^ t[(r >> 24) & 0xFF];
所以是W/4是因為若有W個0,因為我們以位元組(8位)為單位的,所以是W/4個0 位元組。注意不是循環w/8次
以下是對作者的原文的翻譯:
1:對於尾部的w/4個0位元組,事實上它們的作用只是確保所有的原始數據都已被送入register,並且被演算法處理。
2:如果register中的初始值是0,那麼開始的4次循環,作用只是把原始數據的頭4個位元組送入寄存器。(這要結合table表的生成來看)。就算 register的初始值不是0,開始的4次循環也只是把原始數據的頭4個位元組把它們和register的一些常量XOR,然後送入register中。

3A xor B) xor C = A xor (B xor C)

總上所述,原來的演算法可以改為:

+-----<Message (non augmented)
|
v 3 2 1 0 Bytes
| +----+----+----+----+
XOR----<| | | | |
| +----+----+----+----+
| ^
| |
| XOR
| |
| 0+----+----+----+----+
v +----+----+----+----+
| +----+----+----+----+
| +----+----+----+----+
| +----+----+----+----+
| +----+----+----+----+
| +----+----+----+----+
+----->+----+----+----+----+
+----+----+----+----+
+----+----+----+----+
+----+----+----+----+
+----+----+----+----+
255+----+----+----+----+

演算法:

1:register左移一個位元組,從原始數據中讀入一個新的位元組.

2:利用剛從register移出的位元組和讀入的新位元組XOR從而產生定位下標,從table中取得相應的值。

3:把該值XOR到register中

4:如果還有未處理的數據則回到第一步繼續執行。

我的學習筆記:

對這一演算法我還是不太清楚,或許和XOR的性質有關,懇請大家指出為什麼?

謝謝。

到這,我們對CRC32的演算法原理和思想已經基本搞清了。下章,我想著重根據演算法思想用java語言實現。

hjzgq 回復於:2003-05-15 14:14:51
數學演算法一向都是密碼加密的核心,但在一般的軟路加密中,它似乎並不太為人們所關心,因為大多數時候軟體加密本身實現的都是一種編程上的技巧。但近幾年來隨著序列號加密程序的普及,數學演算法在軟體加密中的比重似乎是越來越大了。

我們先來看看在網路上大行其道的序列號加密的工作原理。當用戶從網路上下載某個Shareware -- 共享軟體後,一般都有使用時間上的限制,當過了共享軟體的試用期後,你必須到這個軟體的公司去注冊後方能繼續使用。注冊過程一般是用戶把自己的私人信息(一般主要指名字)連同信用卡號碼告訴給軟體公司,軟體公司會根據用戶的信息計算出一個序列碼出來,在用戶得到這個序列碼後,按照注冊需要的步驟在軟體中輸入注冊信息和注冊碼,其注冊信息的合法性由軟體驗證通過後,軟體就會取消掉本身的各種限制。這種加密實現起來比較簡單,不需要額外的成本,用戶購買也非常方便,在網上的軟體80%都是以這種方式來保護的。

我們可以注意到軟體驗證序列號的合法性過程,其實就是驗證用戶名與序列號之間的換算關系是否正確的過程。其驗證最基本的有兩種,一種是按用戶輸入的姓名來生成注冊碼,再同用戶輸入的注冊碼相比較,公式表示如下:

序列號 = F(用戶名稱)

2. 什麼是「2121」校驗方法

2121校驗應該就是利用Luhn演算法

Luhn 演算法或是Luhn
公式,也被稱作「模10演算法」。它是一種簡單的校驗公式,一般會被用於身份證號碼,IMEI號碼,美國供應商識別號碼,或是加拿大的社會保險號碼的驗證。該演算法是由IBM的科學家Hans
Peter Luhn所創造,於1954年1月6日提出該專利的申請,並於1960年8月23日被授予,在美國的專利號為2950048。

該演算法一直都被大家所公用,並且時至今日應用也很廣泛。它被指定在ISO/IEC7812-1。它的目的不是成為一種加密安全的哈希函數;它的目的是防止意外出現的錯誤,而不是惡意攻擊。很多信用卡和眾多的政府身份識別號碼都使用該演算法從一系列的隨機數字中提取有效的數字。

優點和缺點

Luhn
演算法會檢測到任何單碼的錯誤以及幾乎所有的相鄰數字換位的錯誤。但是它不會檢測兩個數字序列09轉90的錯誤(反之亦然)。它會檢測到十分之七的相同雙位數錯誤(不會檢測到22和55的互換,33和66的互換,44和77的互換)。其他更復雜的檢查數字演算法,如費爾赫夫演算法,可以檢測出更多的轉錄錯誤。模N的Luhn演算法是Luhn演算法的一個擴展,支持非數字字元串。因為該演算法採取了從右向左的方式,而且零位會影響計算的結果。只有當零位造成了數位的移動或是用零來填充一串數字的開頭時才不會影響計算結果的生成。因此不論在將1234用零填充為0001234之前或是之後,使用Luhn演算法得到的結果都是一樣的。

該演算法在美國專利上是為了給手持或是機械設備計算校驗碼。所以它必須盡可能的簡單。

非正式的解釋

該公式會通過校驗碼對一串數字進行驗證。校驗碼通常會被加到賬戶號碼中,從而拼合成一個完整的賬戶號碼。拼合後的賬戶號碼要通過以下的測試:

1.從校驗位開始計數(校驗位一般添加在賬戶的最後面),按從右向左的順序,將偶數都乘以2.

2.將得到的結果相加起來(例如:10=1+0=1,14=1+4=5,也有的說法是若是乘2的結果是兩位數的話,那麼就直接減去9,和之前位數拆開相加的結果是一樣的),然後再與原數字串的奇數位相加。

3.如果加起來的和模10後為0(也就是相加的結果是以0結尾的,10的倍數),那麼這個數字串根據Luhn演算法來說就是有效的,反之就是無效的。

假設一個字元串為「7992739871」,我們為其加上一個校驗位,最後組成的數字為7992739871x:

賬戶號碼: 7 9 9
2 7 3
9 8 7 1 x

將偶數位乘以2:7 18 9 4 7 6 9
16 7 2
x

相加後的數字: 7 9 9 4 7 6 9 7 7
2 =67

校驗碼x是通過將相加後的數字乘以9後,在進行模10計算(那麼就是:(67*9)mod10,也有的說法是取比相加的和最小的10的整數倍數字,其實結果都是一樣的)。通俗地說:

1.計算所有位數的和(67)。

2.將其乘以9(603)。

3.取最後一位數字(3)。

4.得到的結果就是校驗位。

另外一種得到校驗位的方法:先計算所有位數的和,用10減去所有位數和模10的結果。(67的個位是7;10-7=3即為校驗位)。通俗地說:

1.計算所有位數的和(67)。

2.取個位數(7)。

3.用10減去個位數(3)。

4.得到的結果就是校驗位。

這樣,我們得到的完整的賬戶號碼是:7992739871x。

下面的每一個數字 79927398710, 79927398711, 79927398712, 79927398713, 79927398714,
79927398715, 79927398716, 79927398717, 79927398718,
79927398719都給以用如下的方法進行驗證。

1.從最右邊開始計算,將偶數位都乘以2:(1*2)=2,(8*2)=16,(3*2)=6,(2*2)=4,(9*2)=18

2.將每一位數字加起來:x(校驗位)+(2)+7+(1+6)+9+(6)+7+(4)+9+(1+8)+7=X+67.

3.如果得到的結果是10的倍數,那麼這個賬戶號碼就可能是有效的。需要注意的是3就是唯一的可以使得和(67+x)是10的整數倍的個位數。

4.因此,以上的所有賬戶除了79927398713 是有效的以外,其他均為無效的賬戶。

校驗位的驗證的代碼實現

以下通過Python來實現的:

def luhn_checksum(card_number):

def digits_of(n):

return [int(d) for d in str(n)]

digits = digits_of(card_number)

odd_digits = digits[-1::-2]

even_digits = digits[-2::-2]

checksum = 0

checksum += sum(odd_digits)

for d in even_digits:

checksum += sum(digits_of(d*2))

return checksum % 10

def is_luhn_valid(card_number):

return luhn_checksum(card_number) == 0

校驗位的計算

上面的演算法檢查輸入校驗位的有效性。計算校驗位需要一個小的適應演算法,即:

1.切換奇/偶乘法。

2.如果得到的和(sum)模10等於0的話,那麼校驗碼就是0。

3.否則,校驗碼就等於10減去得到的和模10(10 - (sum mod 10))

def calculate_luhn(partial_card_number):

return 10 - luhn_checksum(int(partial_card_number) * 10)

3. 2010電子商務師模擬試題及答案

一、單選題
1.中央處理單元(CPU)的兩個主要組成部分是運算器和()。C
(A)寄存器
(B)主存儲器
(C)控制器
(D)輔助存儲器

2.計算機網路是用通信線路把分散布置的多台獨立計算機及專用外部設備互連,並配以相應的()所構成的系統。D
(A)系統軟體
(B)應用軟體
(C)操作系統
(D)網路軟體

3.下列電子商務網站中,()屬水平B2B電子商務。(C)
(A)Dell電腦
(B)Cisco
(C)環球資源網
(D)上海書城

4.網路廣告策略屬於()的研究范圍。D
(A)價格策略
(B)渠道策略
(C)產品策略
(D)促銷策略

5.()是指利用交通工具一次向單一目的地長距離地運送大量貨物的移動。(C)
(A)運輸
(B)配送
(C)輸送
(D)物流

6.在市內運輸中,由生產廠經由物流企業(如配送中心)為用戶提供商品時,從配送中心到用戶之間的物品空間移動稱為()。(C)
(A)運輸
(B)輸送
(C)配送
(D)物流

7.企圖利用漏洞達到惡意目的的威脅代理稱之為()。(B)
(A)郵件爆炸
(B)攻擊
(C)漏洞
(D)威脅

8.電子商務系統()保護數據不被篡改、破壞和非法復制。 C
(A)硬體安全
(B)運行安全
(C)軟體安全
(D)安全立法

9.電子商務過程中,人們需要用()來相互證明各自的身份。(C)
(A)電子郵箱賬號
(B)電子指紋
(C)電子簽字機制
(D)IP地址

10.典型的電子商務支付應該是()。(D)
(A)銀行轉帳
(B)電話支付
(C)貨到付款
(D)網上支付

11.在HTML中,()是網頁主體的標記。(D)
(A)<head>
(B)<title>
(C)<html>
(D)<body>

12.在 HTML中,type屬性用來顯示不同形狀的項目符號,它使用在()標記中。(C)
(A)<ul>
(B)<p>
(C)<li>
(D)<ol>

13.在 HTML中,()標記符是非成對標記符。(A)
(A)<br>
(B)<p>
(C)<ul>
(D)<a>

14.使用外部樣式文件需要在文檔的頭部區域使用的標記是()。(A)
(A)<link>
(B)<class>
(C)<style>
(D)<a>

15.樣式表文件的後綴名是()。(A)
(A)css
(B)htm
(C)html
(D)asp

16.()無法單獨存在,必須附屬在HTML中執行。 A
(A)VBScript
(B)JavaScript
(C)Delphi
(D)C語言

17.FTP常用的服務是()。(B)
(A)超文本傳輸
(B)下載
(C)ls
(D)遠程登錄

18.在()中計算機可以使用超終端通信。(A)
(A)對等網路
(B)廣播式網路
(C)非對等網路
(D)VPN

19.()類郵件列表,只有經過郵件列表管理者許可的電子郵件才能發送給其他訂戶。C
(A)公開
(B)阻止
(C)管制
(D)封閉

20.移動存儲設備最大的優勢在於()。(C)
(A)標准存儲單位成本低
(B)存儲量大
(C)易保存,受外界影響更小
(D)方便易用

21.關系資料庫使用()表示實體及其聯系。(C)
(A)記錄
(B)欄位
(C)數據表
(D)SQL

22.新聞組中()頂級類別表示關於新聞組本身的主題。(B)
(A)alt
(B)news
(C)misc
(D)talk

23.網路市場調研問卷的問題一般不要超過()個。C
(A)10
(B)15
(C)20
(D)30

24.在對競爭對手的調研活動中,() 發揮著重要作用。(B)
(A)網上直接調研
(B)網上間接調研
(C)E-mail問卷
(D)Focus-Group

25.在網路調研中,()一般用來再次向填寫者表示感謝或致意,此外註明公司的標志性信息(如公司名稱、網站、聯系方式),這是宣傳公司形象的好機會。(D)
(A)卷首說明
(B)調研問題
(C)調研內容
(D)結束語

26.()主要是為顧客提供一個友好的購物環境,包括用戶注冊、店面瀏覽,商品定購等部分。(A)
(A)前台商務系統
(B)後台商務系統
(C)店面管理系統
(D)站點管理系統

27.()是為了讓上網的用戶不用等到多媒體文件完全下載完就開始播放的一種技術。D
(A)條形碼技術
(B)射頻技術
(C)多媒體技術
(D)動畫流技術

28.因為網路廣告()的特徵,使得公司在網路上許多位置放置公司的廣告和相關產品介紹。(C)
(A)回饋快
(B)效率高
(C)成本低
(D)交互強

29.物流信息系統分析工作的總結稱之為()。(B)
(A)物流環境分析報告
(B)信息分析報告
(C)數據流分析報告
(D)業務分析報告

30.在網上單證設計過程中,要注意保證訂單在商城未確認前的()。(C)
(A)可轉換性
(B)可傳遞性
(C)可修改性
(D)可追述性

31.客戶的購買記錄屬於()信息。(D)
(A)客戶的靜態
(B)客戶的操作
(C)客戶的動態
(D)客戶的行為

32.電子合同是通過計算機網路系統訂立的、以()的方式生成、儲存或傳遞的合同。(D)
(A)數據文件
(B)數字電文
(C)數字文件
(D)數據電文

33.數字化信息附著在軟體光碟上,稱為()。A
(A)有形信息產品
(B)無形信息產品
(C)非信息產品
(D)信息服務

34.在電子商務中,合同的()發生了極大的變化。(C)
(A)意義
(B)作用
(C)形式
(D)功能

35.()是SSL協議的基本特點。(D)
(A)能對通信雙方的身份進行認證
(B)進行協商的雙方的秘密是安全的
(C)協商是可靠的
(D)連接是專用的

36.SET協議是在()之上的應用層的網路標准協議。(D)
(A)數據鏈路層
(B)物理層
(C)傳輸層
(D)對話層

37.安全電子交易是基於互聯網的支付,是授權業務信息傳輸的安全標准,它採用()公開密鑰體系對通信雙方進行認證。(D)
(A)HASH
(B)DES
(C)RC4
(D)RSA

38.下列屬於網路客戶服務工具的是()。A
(A)FAQ
(B)ERP
(C)CRM
(D)SCM

39.()是指完成交易之後為顧客提供的服務。主要包括產品的技術支持和技術服務及為客戶提供的增值服務。(D)
(A)售前服務
(B)售中服務
(C)售後服務
(D)溝通服務

40.網路客戶反饋信息通常都是以()方式傳遞的。(B)
(A)電話
(B)E-mail
(C)上門訪問
(D)郵局郵件

41.()條形碼包括生產日期、有效日期、運輸包裝的序號、重量、地址等信息。(D)
(A)EAN-13
(B)DUN-14
(C)DUN-16
(D)EAN-128

42.配裝成本中包括()。A
(A)配裝材料費用
(B)配送間接費用
(C)物流中心製造費用
(D)分揀設備折舊費用

43.物流運輸企業與供應鏈參與各方整合在一起形成( )。(C)
(A)物流企業
(B)供應鏈結合體
(C)第三方物流
(D)物流供應鏈

44.條碼是由一組規則的、不同寬度的條和空組成的標記,其中對光線反射率低的是( )。(A)
(A)條
(B)空
(C)相同
(D)粗條

45.電子訂貨系統簡稱是()。(D)
(A)POS
(B)EPS
(C)GPS
(D)EOS
46.()屬於物流組織結構與功能分析的主要內容。(A)
(A)物流數據分析
(B)組織結構分析
(C)業務過程與組織結構之間的聯系分析
(D)業務流程分析

47.應用()技術的車輛運行管理系統只適用於小范圍的通信聯絡。A
(A)MCA
(B)通信衛星
(C)GPS
(D)GIS

48.企業采購和付款業務循環內部控制使用的基本文件中,()是由采購部門編制的授權供應方提供商品的預先編號的文件。(B)
(A)請購單
(B)訂單
(C)驗收單
(D)借項通知單

49.采購申請模塊的功能包括()。D
(A)對於已通過的采購申請,郵件通知申請者
(B)對於已通過的采購申請,提交給采購管理模塊
(C)制定年度或月份采購計劃
(D)接受企業ERP系統自動提交的原材料采購申請

50.報價采購中,報價單的有效期是指()。(A)
(A)報價送達對方所在地時的日期
(B)報價日期
(C)報價單發送日期
(D)開標日期

51.逾期率是供應商評價指標中的()指標。(C)
(A)價格
(B)品質
(C)交期交量
(D)配合度

52.()是企業對供應商最基本的行為約束,也是二者保持合作關系的基本保障。(C)
(A)供應商評價體系
(B)供應商考核體系
(C)供應商行為准則
(D)供應商行業規范

53.設計加密系統時,真正需要保密的是()。A
(A)密鑰
(B)加密演算法
(C)解密演算法
(D)密文

54.使用DES演算法加密的演算法步驟是( )。(A)
(A)將明文分組、初始置換,迭代過程,逆初始置換,輸出64位碼的密文
(B)初始置換,將明文分組、逆初始置換,迭代過程,輸出64位碼的密文
(C)初始置換,迭代過程,將明文分組、逆初始置換,輸出64位碼的密文
(D)將明文分組、初始置換,逆初始置換迭代過程,,輸出64位碼的密文

55.在安全電子郵件中,收信的協議是( )。(C)
(A)SMTP
(B)HTTP
(C)POP3
(D)FTP

56.OSI是( )。(B)
(A)國際標准化組織
(B)安全體系結構
(C)質量管理體系
(D)國家標準的環境管理體系

57.瞬時復制技術是( )。(A)
(A)使計算機在某一災難時刻自動復制數據的技術
(B)快速產生和維護一份或多份資料庫數據的復制
(C)在遠程備份中心提供主數據中心的磁碟鏡像
(D)人工快速復制備份數據

58.用特徵代碼法檢測病毒()。(C)
(A)能檢測未知病毒
(B)誤報率高
(C)可識別病毒的名稱
(D)不能做解毒處理

59.引導型病毒將病毒寄生在硬碟( )。(A)
(A)邏輯0扇區或軟體0扇區
(B)邏輯1扇區或軟體1扇區
(C)邏輯2扇區或軟體2扇區
(D)邏輯3扇區或軟體3扇區

60.判斷病毒的觸發條件,實施病毒的破壞功能的模塊是( )。(C)
(A)傳染模塊
(B)引導模塊
(C)表現模塊
(D)以上都不是

二、多選題
61.計算機網路的分類標准很多,按拓撲結構可分為()。(BCD)
(A)廣播型
(B)星型
(C)匯流排型
(D)環型

62.電子商務的基本組成要素包括用戶、商家以及()等。(ABCD)
(A)物流配送
(B)認證中心
(C)銀行
(D)網路

63.網路產品策略包括()。AD
(A)產品選擇策略
(B)網路直銷策略
(C)網路廣告策略
(D)銷售服務策略

64.計算機信息系統安全產品是用來保護計算機信息系統安全的專用的硬體和軟體產品,如()。(AC)
(A)網路防火牆
(B)解密軟體
(C)防病毒軟體
(D)壓縮軟體

65.在電子商務條件下,買方應當承擔的義務包括()。(ABD)
(A)按照網路交易規定方式支付價款的義務
(B)按照合同規定的時間、地點和方式接受標的物的義務
(C)對標的物的質量承擔擔保義務
(D)對標的物驗收的義務

66.下列關於字體標記color屬性的描述正確的有()。 ACD
(A)定義文字的顏色
(B)定義文字的字體
(C)可以用顏色的英文名稱表示顏色
(D)可以用16進制的RGB代碼表示顏色

67.在 HTML中,()是表格使用的標記。(BCD)
(A)<ul>
(B)<table>
(C)<tr>
(D)<td>

68.在FrontPage中,能加入DHTML效果的事件有()。(ABCD)
(A)單擊
(B)雙擊
(C)滑鼠懸停
(D)網頁載入

69.關於CSS的應用,正確的說法有()。(ABCD)
(A)外部樣式是獨立的CSS文件
(B)內聯式樣式只包含在與它有關的標記內
(C)應用嵌入式樣式,要將CSS代碼置於<HEAD>和</HEAD>之間
(D)應用嵌入式樣式,要將CSS代碼置於<!--和-->之間

70.網路下載軟體JetCar具有的特點包括()。(ACD)
(A)支持斷線續傳
(B)能創建有限數目的類別
(C)支持MMS和RTSP協議
(D)具有預防病毒侵害的安全機制

71.下列關於音頻技術的描述正確的有()。 BCD
(A)存儲介質磁性變化不影響模擬音頻的回放質量
(B)MIDI音樂是電腦特有的
(C)數字音頻技術將聲波波形轉換成二進制數據
(D)Sound Forge是一種音頻編輯工具

72.以下()SQL語句屬於數據操縱語言。(BD)
(A)Alter
(B)Select
(C)Create
(D)Update

73.撰寫網路市場調研計劃書需要()。ABCD
(A)確定調研的目標和范圍
(B)制定調研計劃
(C)說明調研人員組成
(D)明確調研時間和資金限制

74.網上市場調研項目的范圍包括(ABCD)
(A)背景
(B)目的
(C)委託人
(D)項目負責人

75.網上市場調研的相關計劃有()。(ABC)
(A)時間計劃
(B)溝通計劃
(C)人力資源計劃
(D)營銷計劃

76.網路感性訴求廣告的創意方法有()。(ABC)
(A)感知效應
(B)情趣效應
(C)情感效應
(D)利益效應

77.進行網上購物的消費者可以分為()等類型。(ABCD)
(A)簡單型
(B)沖浪型
(C)議價型
(D)接入型

78.設計網上商店單證種類和格式需要()AB
(A)列出所需網上單證種類的名稱
(B)列出各種單證的有關數據項
(C)列出各網上單證為方便客戶所需要的提示語內容
(D)確定各網上單證色彩、字體、字形

79.網上訂單的後台處理的過程主要包括()等。(ACD)
(A)訂單准備
(B)訂單傳遞
(C)訂單儲存
(D)訂單登錄

80.認證機構一般需承擔()。(ABCD)
(A)信息披露義務
(B)信息通知義務
(C)安全義務
(D)舉證義務

81.電子合同的特點有()。ACD
(A)電子數據易消失
(B)電子數據不易改動
(C)電子合同局限性
(D)可能受到計算機病毒攻擊

82.SET最初是由()合作開發完成的。(AB)
(A)VISA CARD
(B)MASTER CARD
(C)AMERICAN EXPRESS CARD
(D)CITIBANK CARD

83.SET通過使用()方式加密保證了數據的保密性。(AD)
(A)公共密鑰
(B)公開密鑰
(C)私有密鑰
(D)對稱密鑰

84.處理客戶投訴的原則包括()。ABCD
(A)預防原則
(B)及時原則
(C)責任原則
(D)管理原則

85.FAQ是指利用網站頁面向顧客提供有關()等問題的現成答案。(ABC)
(A)產品的使用
(B)技術支持
(C)企業情況
(D)訂單狀態

86.網上售後服務的主要特點包括()。(ABCD)
(A)方便
(B)直接
(C)個性化
(D)快捷

87.條碼在倉庫內部管理中的作用是()。(AC)
(A)存貨盤點形成盤點報告
(B)方便入庫
(C)出庫備貨
(D)條理存放

88.物流信息按照物流的功能分類可以分為()。(ABCD)
(A)計劃信息
(B)控制及作業信息
(C)統計信息
(D)支持信息

89.判定配送合理與否的因素是多方面的,()因素屬於合理范疇。(BCD)
(A)資金周轉慢
(B)庫存周轉快於原來各企業庫存周轉
(C)缺貨次數下降
(D)即時配送速度快

90.選擇配送方法包括()。BCD
(A)確定物流服務商
(B)確定配貨作業方法
(C)確定車輛配裝方法
(D)確定配送路線

91.企業可以()了解供應商的能力,選擇合適的供應商。(ABCD)
(A)根據供應商的信譽對比類似產品的歷史情況及其他用戶的使用情況
(B)根據供應商提供的樣品進行評價
(C)對供應商的能力進行現場調查和評價
(D)根據是否取得有關質量認證機構的質量體系認證

92.防止企業采購中暗箱操作的措施「三統一分」,其中「三統」是指所有采購商品要()。(BCD)
(A)統一控制費用
(B)統一采購驗收
(C)統一審核結算
(D)統一轉賬付款

93.對供應商進行調查,調查表應盡量用()進行表述。(BC)
(A)文字
(B)數據
(C)量值
(D)實例

94.電子商務信息保密性需求包括()。AB
(A)信息的隱私問題
(B)交易內容的保密性
(C)伺服器的真實性
(D)交易雙方身份的真實性

95.對電子郵件的加密主要方法有( )。(AB)
(A)使用PGP插件
(B)使用數字證書
(C)用系統自帶的加密功能
(D)用壓縮加密軟體

96.安全交易體系中具有代表性的交易規范協議有( )。(BC)
(A)TCP/IP
(B)SET
(C)SSL
(D)HTTP

97.支撐軟體的維護需要做到()。ABCD
(A)定期清理日誌文件
(B)定期清理臨時文件
(C)定期執行整理文件系統
(D)處理運行中死機情況

98.計算機安全是指一種確定狀態,使計算機化數據和程序文件不致被()訪問、獲取或修改。(BCD)
(A)授權人員
(B)計算機
(C)程序
(D)非授權人員

99.校驗演算法的缺點是( )。(ABD)
(A)不能識別病毒名稱
(B)不能對付隱蔽性病毒
(C)不能發現未知病毒
(D)容易誤報警

100.堡壘主機的系統軟體可用於( )。(ABC)
(A)維護系統日誌
(B)硬體復制日誌
(C)遠程日誌
(D)用戶操作日誌

閱讀全文

與校驗演算法的缺點是什麼相關的資料

熱點內容
雲看地是什麼APP 瀏覽:883
數學指南pdf 瀏覽:856
phpcurldll64位 瀏覽:976
程序員脫產一年半 瀏覽:849
hr招程序員有什麼條件 瀏覽:587
android開源集合 瀏覽:867
華為雲伺服器登錄密碼和賬號 瀏覽:154
中世紀java程序員 瀏覽:786
什麼開發引擎使用python 瀏覽:176
sh腳本運行命令 瀏覽:316
廣聯達加密鎖怎麼看到期 瀏覽:173
cad軌跡命令 瀏覽:979
同事刷到女程序員自媒體視頻 瀏覽:571
校驗演算法的缺點是什麼 瀏覽:718
PHP商品分類功能實現 瀏覽:330
php取字元串中間 瀏覽:432
程序員經常用工具 瀏覽:837
降服主力指標源碼主圖 瀏覽:502
python實用庫 瀏覽:694
電腦默認7個文件夾 瀏覽:13