2012-07-28 32 views
0

我在C#中使用IKVM來利用Java的SHA1加密的代碼。C#byte [] [] SHA1

public static string ComputeHash(params byte[][] bytes) 
    { 
     if (bytes == null) throw new ArgumentNullException("bytes"); 
     MessageDigest digest = MessageDigest.getInstance("SHA-1"); 
     foreach (var item in bytes) 
     { 
      if (item == null) 
       if (bytes == null) throw new ArgumentNullException("bytes", "Inner array is null"); 
      digest.update(item); 
     } 
     string s = (new java.math.BigInteger(digest.digest())).toString(16); 
     return s; 
    } 

是否有替代方案,而不是使用IKVM?

+0

有點挑剔:SHA-1是一個加密散列函數,而不是加密。 – CodesInChaos 2012-07-28 12:32:14

回答

0

如果我理解正確的問題,您可以在System.Security.Cryptography中使用Sha1CryptoServiceProvider類。

下面是從該網頁的代碼示例:

byte[] data = new byte[DATA_SIZE]; 

byte[] result; 

SHA1 sha = new SHA1CryptoServiceProvider(); 
    // This is one implementation of the abstract class SHA1. 

result = sha.ComputeHash(data); 

我不希望它太難改變到例如一個需要交錯數組。

+0

感謝您的建議,我會更多地考慮這一點。 – 0xFF 2012-07-28 12:06:49