0
在Java Android应用程序中,我获得了以下代码以获取字符串的SHA1。我如何在C#中具有等价物?Java 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);
}
这不是一个真正的问题。 Stackoverflow不是**代码转换器**!请阅读[常见问题]和[问] – 2013-03-05 08:20:50
在C#中的加密命名空间中存在完全相同的SHA1类...我错过了什么? – SpaceBison 2013-03-05 08:21:38