第 21 题
$ \2 b% g" ^( p& q5 ]) R+ p你正在开发一个使用安全哈希算法计算给定数据哈希值的方法。传递给你方法的数据是一个
* Z; ~+ M3 C$ Y& ?7 S: y名为 message 的字节数组。你需要计算输入数据的 SHA1 哈希值,而且要把计算结果放入名
' S, Z( a2 X: N2 u% O8 r# f为 hash 的字节数组。你应该使用下面那一个代码段? $ B; } A c, _$ k
A. SHA1 sha = new SHA1CryptoServiceProvider();byte[] hash = % s, X" H- I, z" Y% N. |1 H
null;sha.TransformBlock(message, 0, message.Length, hash, 0); $ M3 X* F9 P3 A6 d
B. SHA1 sha = new SHA1CryptoServiceProvider();byte[] hash =
8 u; F8 v$ _9 }* E6 |+ k5 UBitConverter.GetBytes(sha.GetHashCode()); 8 X1 }: B- q4 D
C. SHA1 sha = new SHA1CryptoServiceProvider();
* B- p0 ~3 f. z7 y) l8 q9 Q2 ?byte[] hash = sha.ComputeHash(message); ( x; y {! \# c& a
D. SHA1 sha = new SHA1CryptoServiceProvider();sha.GetHashCode(); 7 O1 n0 y# g! X2 W" U |+ _' l7 p
byte[] hash = sha.Hash;
2 {; S% v: Y, c1 Q1 X答案: C
) X/ n2 \* x C- d7 z8 G* C3 f9 a: R& O5 s5 h9 Q
第 22 题 8 C b C. Z) e+ e9 I5 d
你正在开发一个以后可以使用 MD5 算法进行验证的、计算哈希值的方法。传递给你方法的 数据是一个名为 message 的字节数组。你需要计算输入数据的 MD5 哈希值,而且要把计算 : L& {% [( f2 p. p& s/ f8 P5 s
结果放入名为 hash 的字节数组。你应该使用下面那一个代码段?
5 U5 D' S3 P" k8 {6 gA. HashAlgorithm algo = HashAlgorithm.Create("MD5");byte[] hash = ! M- ]) n3 \* q& o3 X% J' x
algo.ComputeHash(message); 9 U, @+ Q) Z5 Q$ R; t" o! S4 v
B. HashAlgorithm algo = HashAlgorithm.Create("MD5");byte[] hash =
& ~0 l' i5 Q/ ?6 }5 B. t) c1 R3 iBitConverter.GetBytes(algo.GetHashCode()); # p; S, `* L# |* H
C. HashAlgorithm algo;algo = HashAlgorithm.Create(message.ToString());byte[] hash = " |! e0 N) }) J! A5 l
algo.Hash;
; o; i+ W I R1 I1 a- {! i: T# @D. HashAlgorithm algo = HashAlgorithm.Create("MD5");byte[] hash =
7 r3 B3 o B& ?& }4 ^7 Enull;algo.TransformBlock(message, 0, message.Length, hash, 0);
: U$ j! {" R! ?7 t! k答案: A 6 D0 g$ T, k8 t% ?6 L8 O- O, Z
9 g, n. w* X+ D4 |9 F1 H \' j
第 23 题 - w6 L( ~, L6 ^2 k4 i
你需要创建一个名为 MyAssembly 的动态类库,同时你也需要把类库保存到磁盘。你应该使用
3 a; t$ l8 }3 a) E下面那个代码段?
4 Y$ K% h, Y9 C% y* Q0 zA. AssemblyName myAssemblyName = + l4 l* r/ ^* B' L4 x
new AssemblyName();myAssemblyName.Name = "MyAssembly";AssemblyBuilder # y0 y7 Y. T, h5 S3 A, w( c
myAssemblyBuilder = - T3 U; i+ \# S; W5 Y
AppDomain.CurrentDomain.DefineDynamicAssembly 2 O$ Z/ |( D* \! M- O
(myAssemblyName, 2 d" s6 A0 c H
AssemblyBuilderAccess.Run);myAssemblyBuilder.Save("MyAssembly.dll"); % t/ U6 Y" e5 V+ V
B. AssemblyName myAssemblyName =
. t) z% W! R! j2 \: tnew AssemblyName();myAssemblyName.Name = "MyAssembly";AssemblyBuilder
& K7 F" Z" D: s7 ]myAssemblyBuilder =
7 k9 }! R5 f3 [( O0 }* f; pAppDomain.CurrentDomain.DefineDynamicAssembly 4 k* o: T. O5 W' B2 Z/ M: w
(myAssemblyName,
% r9 a2 g: L+ WAssemblyBulderAccess.Save);myAssemblyBuilder.Save("MyAssembly.dll");
7 k9 S4 H9 F4 ^+ MC. AssemblyName myAssemblyName = . f. ^' v% Z& d
new AssemblyName();AssemblyBuilder myAssemblyBuilder = 1 \2 m) F! d4 P4 q
AppDomain.CurrentDomain.DefineDynamicAssembly 3 u* z7 B% g& j! o; }' l! w
(myAssemblyName, 1 W! K; g C a
AssemblyBuilderAccess.RunAndSave);myAssemblyBuilder.Save("MyAssembly.dll"); 1 Q1 t0 O# |! h4 {: L2 b& @
D. AssemblyName myAssemblyName = + W" M e1 N! T; f" p; [
new AssemblyName("MyAssembly");AssemblyBuilder myAssemblyBuilder = ! h1 P/ C4 w- R( g
AppDomain.CurrentDomain.DefineDynamicAssembly
% K9 C3 v" x+ T R(myAssemblyName, 8 P% l3 H$ e3 F9 k% l! X |
AssemblyBuilderAccess.Save);myAssemblyBuilder.Save("c:\\MyAssembly.dll");
& m1 t0 A* N! Z& I4 E+ ]( R+ M答案: B |