C# C语言中的javasha1等价物#

C# C语言中的javasha1等价物#,c#,java,xamarin.ios,sha1,C#,Java,Xamarin.ios,Sha1,在一个JavaAndroid应用程序中,我得到了以下代码来获取字符串的SHA1。我怎么能用C#来表示 /** *将字节数组转换为十六进制的实用方法。 * *@param数据 *@返回 */ 专用静态字符串convertToHex(字节[]数据) { StringBuilder buf=新的StringBuilder(); for(字节b:数据) { int半字节=(b>>>4)&0x0F; int two_halfs=0; 做 { buf.append((0在.NET中有一个类可以使用。这不是

在一个JavaAndroid应用程序中,我得到了以下代码来获取字符串的SHA1。我怎么能用C#来表示

/**
*将字节数组转换为十六进制的实用方法。
* 
*@param数据
*@返回
*/
专用静态字符串convertToHex(字节[]数据)
{
StringBuilder buf=新的StringBuilder();
for(字节b:数据)
{
int半字节=(b>>>4)&0x0F;
int two_halfs=0;
做
{

buf.append((0在.NET中有一个类可以使用。

这不是一个真正的问题。Stackoverflow不是一个代码转换器!请阅读,C#中的加密名称空间中存在完全相同的SHA1类……我缺少什么吗?
/**
   * 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);
  }