小编Met*_*aos的帖子

使用 RSA/ECB/OAEPWithSHA-256AndMGF1Padding 在 Java 中加密,使用 OAEPSHA256 Padding 在 C# 中解密

我遇到过 Java 程序使用 RSA/ECB/OAEPWithSHA-256AndMGF1Padding 加密文本的情况。

我需要在 C# 中解密它。

Java 中的加密和解密工作正常。

使用 RSA/ECB/OAEPWithSHA-1AndMGF1Padding 在 Java 中加密并在 C# 中解密工作得非常好。

但是,使用 Java 中的 RSA/ECB/OAEPWithSHA-256AndMGF1Padding 加密和 C# 中的 OaepSHA256 解密会出现错误:参数不正确。

用于加密的Java代码:

public static String encrypt(KeyPair keypair, String data) throws NoSuchAlgorithmException, NoSuchPaddingException,
            InvalidKeyException, IllegalBlockSizeException, BadPaddingException, UnsupportedEncodingException {
        Cipher c = Cipher.getInstance("RSA/ECB/OAEPWithSHA-256AndMGF1Padding");
        //Cipher c = Cipher.getInstance("RSA/ECB/OAEPWithSHA-1AndMGF1Padding");
        c.init(Cipher.ENCRYPT_MODE, keypair.getPublic());
        return Base64.getEncoder().encodeToString(c.doFinal(data.getBytes()));
    }
Run Code Online (Sandbox Code Playgroud)

解密的C#代码:

public string DecryptRsa(byte[] encryptedBytes, X509Certificate2 x509Certificate2, RSAEncryptionPadding rSAEncryptionPadding)
        {
            var text = string.Empty;

            using (RSACng csp = (RSACng)x509Certificate2.GetRSAPrivateKey())
            {

                byte[] bytesDecrypted = csp.Decrypt(encryptedBytes, rSAEncryptionPadding); …
Run Code Online (Sandbox Code Playgroud)

c# encryption sha256

4
推荐指数
1
解决办法
2559
查看次数

标签 统计

c# ×1

encryption ×1

sha256 ×1