与Java中的RSAPKCS1SignatureDeformatter等效,我可以使用什么?

时间:2018-08-05 18:48:01

标签: java c# rsa sha1 digital-certificate

我有一个文件创建过程,我们在其中使用RSAPKCS1Signature类创建一个签名,以在c#中进行签名和验证。 现在我们转向Java,我们使用的是c#中使用的相同算法,但是并没有验证c#中创建的java中的相同文件。 我已经附上了示例代码。请建议需要满。 谢谢..!

C#:

        RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
        byte[] Hash = {59,4,248,102,77,97,142,201,210,12,224,93,25,41,100,197,213,134,130,135};

        RSAPKCS1SignatureFormatter RSAFormatter = new RSAPKCS1SignatureFormatter(RSA);

        RSAFormatter.SetHashAlgorithm("SHA1");

        byte[] SignedHash = RSAFormatter.CreateSignature(Hash);

        RSAPKCS1SignatureDeformatter RSADeformatter = new 
        RSAPKCS1SignatureDeformatter(RSA);

        RSADeformatter.SetHashAlgorithm("SHA1");

        Console.WriteLine(RSADeformatter.VerifySignature(Hash, SignedHash));

Java:

        KeyStore ex = KeyStore.getInstance("JKS");
        ex.load("c://sample.jks", "password");
        PrivateKey privateKey = (PrivateKey) ex.getKey("1", "password");
        Signature signature = Signature.getInstance("SHA1WithRSA");
        signature.initSign(privateKey);

        String line = null;
        while ((line = reader.readLine()) != null) {
            signature.update(line.getBytes());
        }
        signature.sign();

0 个答案:

没有答案