0

在 Java Android 应用程序中,我得到以下代码来获取字符串的 SHA1。我如何在 C# 中拥有等价物?

/**
   * Utility method to convert an array of bytes to hex.
   * 
   * @param data
   * @return
   */
  private static String convertToHex(byte[] data)
  {
    StringBuilder buf = new StringBuilder();
    for (byte b : data)
    {
      int halfbyte = (b >>> 4) & 0x0F;
      int two_halfs = 0;
      do
      {
        buf.append((0 <= halfbyte) && (halfbyte <= 9) ? (char) ('0' + halfbyte) : (char) ('a' + (halfbyte - 10)));
        halfbyte = b & 0x0F;
      }
      while (two_halfs++ < 1);
    }
    return buf.toString();
  }

  /**
   * Hash a String using SHA1.
   * @param text
   * @return
   * @throws NoSuchAlgorithmException
   * @throws UnsupportedEncodingException
   */
  public static String SHA1(String text) throws NoSuchAlgorithmException, UnsupportedEncodingException
  {
    MessageDigest md = MessageDigest.getInstance("SHA-1");
    md.update(text.getBytes("iso-8859-1"), 0, text.length());
    byte[] sha1hash = md.digest();
    return convertToHex(sha1hash);
  }
4

1 回答 1

2

.NET 中有一个SHA1类,您可以使用它。

于 2013-03-05T08:21:52.547 回答