这一段用JAVA实现的加密代码,用C#如何实现

看来真的挺难,各位的代码我都研究试过,都不行,分就散了吧,也谢谢各位了!

代码转换如下,望采纳

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;
            }
        }

    }
}


https://download.csdn.net/download/likerainme/6959137?utm_medium=distribute.pc_relevant_download.none-task-download-2~default~BlogCommendFromBaidu~Rate-2.dl_default&depth_1-utm_source=distribute.pc_relevant_download.none-task-download-2~default~BlogCommendFromBaidu~Rate-2.dl_default&dest=https%3A%2F%2Fdownload.csdn.net%2Fdownload%2Flikerainme%2F6959137&spm=1003.2020.3001.6616.2

有个简洁的路径,是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;
            }
        }

    }
}