2012-07-28 54 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