2017-10-02 9 views
0

Wie kann ich diesen Java-Code in C# konvertieren?So konvertieren Sie Java MessageDigest mit zwei Updateanweisungen in C#

byte[] a = ...some byte array...; 
    byte[] b = ...some byte array...; 

    MessageDigest m_Hash = MessageDigest.getInstance("SHA-1"); 
    m_Hash.update(a); 
    m_Hash.update(b); 
    byte[] ub = m_Hash.digest(); 

Bisher habe ich:

 var hash = HashAlgorithm.Create("SHA-1"); 
     hash.ComputeHash(a); 
     hash.ComputeHash(b); 

Aber ich glaube nicht, das in die richtige Richtung zu gehen, weil ComputeHash tatsächlich ein byte [] zurückgibt.

Antwort

0

So ... es sieht aus wie Update fügt nur die Byte-Arrays ... Ich habe eine Funktion geschrieben, dies zu tun, und es sieht wie folgt aus:

var hash = HashAlgorithm.Create("SHA-1"); 
    byte[] ub = hash.ComputeHash(AppendArrays(a, b)); 

    public byte[] AppendArrays(byte[] b1, params byte[][] others) 
    { 
     int n = b1.Length; 
     foreach (var other in others) 
      n += other.Length; 

     var result = new byte[n]; 

     n = 0; 
     Array.Copy(b1, 0, result, n, b1.Length); 
     n += b1.Length; 
     foreach (var other in others) 
     { 
      Array.Copy(other, 0, result, n, other.Length); 
      n += other.Length; 
     } 

     return result; 
    } 
Verwandte Themen