C# C语言中的javasha1等价物#
在一个JavaAndroid应用程序中,我得到了以下代码来获取字符串的SHA1。我怎么能用C#来表示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中有一个类可以使用。这不是
/**
*将字节数组转换为十六进制的实用方法。
*
*@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);
}