Может ли кто-нибудь перевести приведенный ниже java-код на c#? Пожалуйста, помогите мне решить эту проблему
import java.security.MessageDigest public class SecureHash { static final char[] HEX = new char[] { '0', '1', '2', '3', '4', '5', '6', '7','8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };} static String hex(byte[] input) { StringBuffer sb = new StringBuffer(input.length * 2); for (int i =0;i<input.length;i++) { sb.append(HEX[(inout[i]>>4) & 0*f]); sb.append(HEX[input[i] & 0*f]); } return sb.tostring(); } public static String genSecureHash(String OriginalString) { MessageDigest md = null; byte[] ba = null; try{ md = MessageDigest.getInstance("SHA-256"); ba = md.digest(originalString.getBytes("ISO-8859-1")); }catch(Exception e){} return hex(ba); } }
Вот что я попробовал.
public static readonly char[] HEX = new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; public static byte[] md5Of(IList<string> list) { try { StringBuilder rawString = new StringBuilder(); foreach (string elem in list) { rawString.Append(elem); } byte[] digest = ConvertStringToMD51(rawString.ToString()); return digest; } catch (Exception e) { Console.WriteLine(e.ToString()); Console.Write(e.StackTrace); } return null; } public static byte[] ConvertStringToMD51(string ClearText) { Encoding enc = Encoding.GetEncoding("ISO-8859-1"); byte[] ByteData = enc.GetBytes(ClearText); MD5 gene = MD5.Create(); byte[] HashData = gene.ComputeHash(ByteData); StringBuilder oSb = new StringBuilder(); for (int x = 0; x < HashData.Length; x++) { oSb.Append(HashData[x].ToString("x2")); } return Encoding.Unicode.GetBytes(oSb.ToString()); } public static string hexdigit(byte[] input) { char[] b16 = new char[input.Length * 2]; int i = 0; foreach (byte c in input) { int low = c & 0xF; int high = (c & 0xF0) >> 4; b16[(i++)] = HEX[high]; b16[(i++)] = HEX[low]; } return new string(b16); }
Что я уже пробовал:
Пожалуйста, решите эту проблему. Я не знаю Явы. я не могу использовать класс the для C#