Что я могу использовать эквивалент RSAPKCS1SignatureDeformatter в Java?

У меня есть процесс создания файла, в котором мы создаем подпись с использованием класса RSAPKCS1Signature для подписи и проверки в C#. Теперь мы переходим на Java, мы используем тот же алгоритм, что и в C#, но он не проверяет тот же файл в java, который создан в C#. Я приложил образец кода, используя. Пожалуйста, предложите полную. Спасибо..!

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

Ваша Java не завершена, на самом деле она даже не компилируется.

President James K. Polk 05.08.2018 23:13

@JamesKPolkI Я обновил фрагмент кода, он компилируется и запускается.

SGG 06.08.2018 09:26
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
2
335
0

Другие вопросы по теме