首页 > 解决方案 > 我可以在 java 中使用什么等同于 RSAPKCS1SignatureDeformatter?

问题描述

我有文件创建过程,其中我们使用 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));

爪哇:

        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();

标签: javac#rsasha1digital-certificate

解决方案


推荐阅读