CSharp和javascript中的FromXmlString

CSharp和javascript中的FromXmlString,javascript,c#,node.js,encryption,Javascript,C#,Node.js,Encryption,谁能告诉我下面这段代码在做什么。我想使用Nodejs实现这一点。我对CSharp完全陌生 这里的加密是否必须使用xmlstring中的这个方法。请帮忙 public void FromXmlString(RSACryptoServiceProvider rsa, string xmlString) { RSAParameters parameters = new RSAParameters(); XmlDocument xmlDoc = new XmlD

谁能告诉我下面这段代码在做什么。我想使用Nodejs实现这一点。我对CSharp完全陌生

这里的加密是否必须使用xmlstring中的这个方法。请帮忙

public void FromXmlString(RSACryptoServiceProvider rsa, string xmlString)
    {
        RSAParameters parameters = new RSAParameters();

        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.LoadXml(xmlString);

        if (xmlDoc.DocumentElement.Name.Equals("RSAKeyValue"))
        {
            foreach (XmlNode node in xmlDoc.DocumentElement.ChildNodes)
            {
                switch (node.Name)
                {
                    case "Modulus": parameters.Modulus = Convert.FromBase64String(node.InnerText); break;
                    case "Exponent": parameters.Exponent = Convert.FromBase64String(node.InnerText); break;
                    case "P": parameters.P = Convert.FromBase64String(node.InnerText); break;
                    case "Q": parameters.Q = Convert.FromBase64String(node.InnerText); break;
                    case "DP": parameters.DP = Convert.FromBase64String(node.InnerText); break;
                    case "DQ": parameters.DQ = Convert.FromBase64String(node.InnerText); break;
                    case "InverseQ": parameters.InverseQ = Convert.FromBase64String(node.InnerText); break;
                    case "D": parameters.D = Convert.FromBase64String(node.InnerText); break;
                }
            }
        }
        rsa.ImportParameters(parameters);
    }

 public string EncryptAsymmetric(string encryptText, string publicKey)
    {
        bool isOAEP = false;
        byte[] byteEncrypt = Encoding.UTF8.GetBytes(encryptText);
        byte[] encryptedData;

        var RSA = new RSACryptoServiceProvider();


        FromXmlString(RSA, publicKey);

        encryptedData = RSA.Encrypt(byteEncrypt, isOAEP);

        return Convert.ToBase64String(encryptedData);
    }

简而言之,它是RSA加密字符串encryptText,使用指定为XML格式字符串公钥的参数,并将结果作为Base64编码字符串返回

FromXmlString是必需的,因为它用于从XML格式的公钥加载加密参数