2009-12-12 2 views
-1
private static string GetSHA512(string strPlain) 
{ 
    UnicodeEncoding UE = new UnicodeEncoding(); 
    byte[] HashValue, MessageBytes = UE.GetBytes(strPlain); 
    SHA512Managed SHhash = new SHA512Managed(); 
    string strHex = ""; 

     HashValue = SHhash.ComputeHash(MessageBytes); 

     foreach (byte b in HashValue) 
     { 
      strHex += String.Format("{0:x2}", b); 
      //strHex += b.ToString(); 
     } 
     int len = strHex.Length; 

     //********This strHex of length 128 characters is to be converted to binary 
     // (actually 512 bit output in binary is required.)**********/ 
} 

s'il vous plaît voir si quelqu'un peut aider.hex nombre de longueur 128 qui doit être converti en binaire en C#

+0

et la question est ...? – tinkertime

+0

Je suppose que vous demandez comment représenter un tableau d'octets comme une chaîne dans la base 2. –

+1

n'est pas la même question que cela http://stackoverflow.com/questions/1892547/sorry-guys-its-hex- nombre-de-128-longueur-qui-est-à-convertir-en-binaire-en-c –

Répondre

-1

En supposant que vous vous demandez comment convertir un tableau d'octets à une chaîne de représentation de base 2:

byte b = 123; 
string s = Convert.ToString(b, 2); // second argument is base 
Console.WriteLine(s); // prints '1111011' 

Maintenant, il suffit de parcourir votre tableau d'octets pour créer votre octet de chaîne par octet.

1

Si vous voulez vraiment convertir la représentation de chaîne hexadécimale du hachage à une représentation de chaîne binaire:

int len = strHex.Length; 
StringBuilder sb = new StringBuilder(""); 
for (int i = 0; i < len; i++) 
{ 
    sb.Append(Convert.ToString(Convert.ToByte(strHex.Substring(i, 1), 16), 2).PadLeft(4, '0')); 
} 
Questions connexes