13.01.2014 Aufrufe

PDF 941kB - Hochschule Ulm

PDF 941kB - Hochschule Ulm

PDF 941kB - Hochschule Ulm

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Implementierung<br />

Byte-Array<br />

Nutzdaten Hash(Nutzdaten) (Hash(Nutzdaten)).Length<br />

Rückgabewert<br />

Abbildung 33: Aufbau des Rückgabewerts des Methode GetBytesWithChecksum().<br />

Von den Nutzdaten wird ein Hash mit der Hashfunktion SHA256 berechnet. Im<br />

Fall, dass die Nutzdaten ein string statt dem erwarteten Byte-Array sind, wird die<br />

überladene Methode aufgerufen die einen string akzeptiert und den den string in ein<br />

Byte-Array konvertiert. Die Nutzdaten sowie der errechnete Hash wird einem neuen<br />

Byte-Array hinzugefügt. An der letzten Position des Byte-Arrays wird die Länge des<br />

Hashwerts hinzugefügt, wie in Listing 22 zu sehen ist.<br />

1 public byte [] GetBytesWithChecksum ( string message )<br />

2 {<br />

3 return this . GetBytesWithChecksum ( Encoding . UTF8 .<br />

GetBytes ( message ));<br />

4 }<br />

5<br />

6 public byte [] GetBytesWithChecksum ( byte [] data )<br />

7 {<br />

8 SHA256Managed sha = new SHA256Managed ();<br />

9 byte [] checksum = sha . ComputeHash ( data );<br />

10<br />

11 int size = data . Length + checksum . Length + 1;<br />

12<br />

13 byte [] dataWithChecksum = new byte [ size ];<br />

14 data . CopyTo ( dataWithChecksum , 0);<br />

15 checksum . CopyTo ( dataWithChecksum , data . Length );<br />

16 dataWithChecksum [ size - 1] = ( byte ) checksum . Length ;<br />

17<br />

18 return dataWithChecksum ;<br />

19 }<br />

Listing 22: Funktionsweise der GetBytesWithChecksum() Methode.<br />

Anschließend wird dieses Byte-Array zurückgegeben. Dieser Rückgabewert kann dann<br />

verschlüsselt und übertragen werden. Der Empfänger entschlüsselt die Daten und möchte<br />

dann zunächst mit der IsValid() Methode die Gültigkeit validieren. Dazu wird von<br />

den Nutzdaten ein Hash mit der Hashfunktion SHA256 gebildet und dieser mit dem<br />

empfangen Hash in dem Byte-Array verglichen. Sind beide identisch, gibt die Methode<br />

true zurück, wie in Listing 23 gezeigt wird.<br />

65

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!