PDF 941kB - Hochschule Ulm
PDF 941kB - Hochschule Ulm
PDF 941kB - Hochschule Ulm
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Implementierung<br />
passwordSalt , 1000) ;<br />
6 aes . Key = deriveBytes . GetBytes ( aes . KeySize /<br />
8);<br />
7 aes .IV = deriveBytes . GetBytes ( aes . BlockSize<br />
/ 8);<br />
8<br />
9 using ( MemoryStream ms = new MemoryStream ())<br />
10 {<br />
11 using ( CryptoStream cs = new<br />
CryptoStream (ms , aes .<br />
CreateDecryptor () ,<br />
CryptoStreamMode . Write ))<br />
12 {<br />
13 cs. Write ( encryptedMessage ,<br />
0, encryptedMessage .<br />
Length );<br />
14 }<br />
15<br />
16 return ms. ToArray ();<br />
17 }<br />
18 }<br />
19 }<br />
Listing 21: Entschlüsseln der Daten mit der Decrypt() Methode.<br />
Doch Verschlüsselung alleine reicht nicht aus. Zwar kann die Vertraulichkeit gewahrt<br />
werden, aber nicht die Integrität. Um die Ingerität der Daten zu wahren, muss den Daten<br />
eine Checksumme hinzugefügt werden vor dem verschlüsseln. Daher wurde die Klasse<br />
Checksum mit den Methoden GetBytesWithChecksum(), IsValid() und GetOriginalData<br />
() umgesetzt, wie in Abbildung 32 zu sehen ist.<br />
Checksum<br />
+ GetBytesWithChecksum(byte[]) : byte[]<br />
+ GetBytesWithChecksum(string) : byte[]<br />
+ GetOriginalData(byte[]) : byte[]<br />
+ IsValid(byte[]) : bool<br />
Abbildung 32: Klassendiagramm der Klasse Checksum.<br />
Mit der GetBytesWithChecksum() Methode erhält der Anwender ein Byte-Array als<br />
Rückgabewert von seinen übergeben Daten. Dieses Byte-Array enthält die Nutzdaten,<br />
den Hashwert der Nutzdaten und die Länge des Hashwerts. In Abbildung 33 wird dies<br />
verdeutlicht.<br />
64