CRC16算法的Java實(shí)現(xiàn),使用方法如下:
CRC16 crc16 = new CRC16()
byte[] b = new byte[] {
// (byte) 0xF0,(byte)0xF0,(byte)0xF0,(byte)0x72
(byte) 0x2C, (byte) 0x00, (byte) 0xFF, (byte) 0xFE,
(byte) 0xFE, (byte) 0x04, (byte) 0x00, (byte) 0x00,
(byte) 0x00, (byte) 0x00 }
for (int k = 0 k < b.length k++) {
crc16.update(b[k])
}
System.out.println(Integer.toHexString(crc16.getValue()))
System.out.println(Integer.toHexString(b.length))
標(biāo)簽:
Java
CRC
16
算法
上傳時(shí)間:
2014-12-20
上傳用戶:ve3344
Ex3-23 親兄弟問(wèn)題
« 問(wèn)題描述:
給定n 個(gè)整數(shù)0 1 1 , , , n- a a a 組成的序列。序列中元素i a 的親兄弟元素k a 定義為:
min{ | } k i j n j j i a = a a ³ a
< <
。
親兄弟問(wèn)題要求給定序列中每個(gè)元素的親兄弟元素的位置。元素i a 的親兄弟元素為k a
時(shí),稱(chēng)k 為元素i a 的親兄弟元素的位置。當(dāng)元素i a 沒(méi)有親兄弟元素時(shí),約定其親兄弟元素
的位置為-1。
例如,當(dāng)n=10,整數(shù)序列為6,1,4,3,6,2,4,7,3,5 時(shí),相應(yīng)的親兄弟元素位
置序列為:4,2,4,4,7,6,7,-1,9,-1。
« 編程任務(wù):
對(duì)于給定的n個(gè)整數(shù)0 1 1 , , , n- a a a 組成的序列,試用抽象數(shù)據(jù)類(lèi)型棧,設(shè)計(jì)一個(gè)O(n)
時(shí)間算法,計(jì)算相應(yīng)的親兄弟元素位置序列。
« 數(shù)據(jù)輸入:
由文件input.txt提供輸入數(shù)據(jù)。文件的第1 行有1 個(gè)正整數(shù)n,表示給定給n個(gè)整數(shù)。
第2 行是0 1 1 , , , n- a a a 。
« 結(jié)果輸出:
程序運(yùn)行結(jié)束時(shí),將計(jì)算出的與給定序列相應(yīng)的親兄弟元素位置序列輸出到output.txt
中。
輸入文件示例 輸出文件示例
input.txt
10
4 2 4 4 7 6 7 -1 9 -1
output.txt
6 1 4 3 6 2 4 7 3 5
標(biāo)簽:
61516
laquo
min
序列
上傳時(shí)間:
2013-12-17
上傳用戶:shizhanincc
Digital Signature Algorithm (DSA)是Schnorr和ElGamal簽名算法的變種,被美國(guó)NIST作為DSS(DigitalSignature Standard)。算法中應(yīng)用了下述參數(shù):
p:L bits長(zhǎng)的素?cái)?shù)。L是64的倍數(shù),范圍是512到1024;
q:p - 1的160bits的素因子;
g:g = h^((p-1)/q) mod p,h滿足h < p - 1, h^((p-1)/q) mod p > 1;
x:x < q,x為私鑰 ;
y:y = g^x mod p ,( p, q, g, y )為公鑰;
H( x ):One-Way Hash函數(shù)。DSS中選用SHA( Secure Hash Algorithm )。
p, q, g可由一組用戶共享,但在實(shí)際應(yīng)用中,使用公共模數(shù)可能會(huì)帶來(lái)一定的威脅。簽名及驗(yàn)證協(xié)議如下:
1. P產(chǎn)生隨機(jī)數(shù)k,k < q;
2. P計(jì)算 r = ( g^k mod p ) mod q
s = ( k^(-1) (H(m) + xr)) mod q
簽名結(jié)果是( m, r, s )。
3. 驗(yàn)證時(shí)計(jì)算 w = s^(-1)mod q
u1 = ( H( m ) * w ) mod q
u2 = ( r * w ) mod q
v = (( g^u1 * y^u2 ) mod p ) mod q
若v = r,則認(rèn)為簽名有效。
DSA是基于整數(shù)有限域離散對(duì)數(shù)難題的,其安全性與RSA相比差不多。DSA的一個(gè)重要特點(diǎn)是兩個(gè)素?cái)?shù)公開(kāi),這樣,當(dāng)使用別人的p和q時(shí),即使不知道私鑰,你也能確認(rèn)它們是否是隨機(jī)產(chǎn)生的,還是作了手腳。RSA算法卻作不到。
標(biāo)簽:
Algorithm
Signature
Digital
Schnorr
上傳時(shí)間:
2014-01-01
上傳用戶:qq521