看来真的挺难,各位的代码我都研究试过,都不行,分就散了吧,也谢谢各位了!
代码转换如下,望采纳
using System;
public class SignatureTookKit
{
public static SecureRandom secRandom = new SecureRandom();
public const string DEFAULT_PROVIDER_NAME = "BC";
public static Signature signature = null;
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: public static byte[] digestSign(byte[] seed, byte[] data) throws Exception
public static sbyte[] digestSign(sbyte[] seed, sbyte[] data)
{
object retr = null;
try
{
MessageDigest e = MessageDigest.getInstance("SHA-256", "BC");
e.update(seed);
e.update(data);
sbyte[] retr1 = e.digest();
return retr1;
}
catch (Exception arg3)
{
throw arg3;
}
}
static SignatureTookKit()
{
if (Security.getProvider("BC") == null)
{
try
{
string e = "org.bouncycastle.jce.provider.BouncyCastleProvider";
object o = System.Activator.CreateInstance(Type.GetType(e));
Security.addProvider((Provider) o);
}
catch (Exception arg1)
{
throw arg1;
}
}
}
}
有个简洁的路径,是java的jar包用IKVM工具转成dll,在C#中引用
望采纳
using System;
public class SignatureTookKit
{
public static java.security.SecureRandom secRandom = new java.security.SecureRandom();
public const string DEFAULT_PROVIDER_NAME = "BC";
public static java.security.Signature signature = null;
public static sbyte[] digestSign(sbyte[] seed, sbyte[] data)
{
object retr = null;
try
{
java.security.MessageDigest e = java.security.MessageDigest.getInstance("SHA-256", "BC");
e.update(seed);
e.update(data);
sbyte[] retr1 = e.digest();
return retr1;
}
catch (Exception arg3)
{
throw arg3;
}
}
static SignatureTookKit()
{
if (java.security.Security.getProvider("BC") == null)
{
try
{
string e = "org.bouncycastle.jce.provider.BouncyCastleProvider";
object o = Type.GetType(e).newInstance();
java.security.Security.addProvider((java.security.Provider) o);
}
catch (Exception arg1)
{
throw arg1;
}
}
}
}
转换成c#后的代码如下
using System;
public class SignatureTookKit
{
public static SecureRandom secRandom = new SecureRandom();
public const string DEFAULT_PROVIDER_NAME = "BC";
public static Signature signature = null;
public static sbyte[] digestSign(sbyte[] seed, sbyte[] data)
{
object retr = null;
try
{
MessageDigest e = MessageDigest.getInstance("SHA-256", "BC");
e.update(seed);
e.update(data);
sbyte[] retr1 = e.digest();
return retr1;
}
catch (Exception arg3)
{
throw arg3;
}
}
public static SignatureTookKit()
{
if (Security.getProvider("BC") == null)
{
try
{
string e = "org.bouncycastle.jce.provider.BouncyCastleProvider";
object o = System.Activator.CreateInstance(Type.GetType(e));
Security.addProvider((Provider) o);
}
catch (Exception arg1)
{
throw arg1;
}
}
}
}