Newer
Older
SensorHub / SensorHub.Servers / RSA.cs
root on 17 Sep 2021 3 KB first commit
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;

namespace SensorHub.Servers
{
    static class RSA
    {
        private static string publicKey =
            "<RSAKeyValue><Modulus>lk05mM6GHuAhJp+NZXYqsMN10kPzexzRTP7DUwJQlzq8chHG" +
            "qqcUzV4ndseN32eHMpXlj2PC0unIWekZp8rEcOOOU5QaTEu9NPfnZ8u5+qBecQwMCkpWJ0" +
            "iXBwVvkgOAehLZtvnU3C1/Q/smFiw/w2RP25NKxDLbzkT6y5qA0AM=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>";

        private static string privateKey =
            "<RSAKeyValue><Modulus>lk05mM6GHuAhJp+NZXYqsMN10kPzexzRTP7DUwJQlzq8chHG" +
            "qqcUzV4ndseN32eHMpXlj2PC0unIWekZp8rEcOOOU5QaTEu9NPfnZ8u5+qBecQwMCkpWJ0" +
            "iXBwVvkgOAehLZtvnU3C1/Q/smFiw/w2RP25NKxDLbzkT6y5qA0AM=</Modulus><Exponent>AQAB</Exponent>" +
            "<P>x9hgoQAJ7s315tVvbon3FTnoFvo02JhXIBbhIX8lOss4Ega4g22VxMz3LRza9PzmQ83KXAdvsblaSeAugwJ5Pw==</P>" +
            "<Q>wIj93C1/aL6dnO1d5/KoeXeSPMHbuM274/l9cyri3EK66alV6vsRigA1qnriQ8FTwdFRRpRjOxPtcumYeU8UPQ==</Q>" +
            "<DP>MCGE5EHGIqWoG7g75juELrCLnT0VjTTjhu77ub2NkeNv1aeYuM6jy4ox3cOdWHOwYZQmsJN56yvg+vnrOdJWsQ==</DP>" +
            "<DQ>Cf0RboLNwVliQ+nsnUPxiZuycoR8KbJCtSkUYQ0wh8zOdaDbXD16Q3aPUjDd3DYDamK5nLfGDiKShwunZWO84Q==</DQ>" +
            "<InverseQ>QyqNJYK01+bJurdpVz+quJsPrmuyPV7kb3cINI3PkOciX8XIattmrqTytQzOjXr4pbuLNEUDU3Vk3f5iNnnNUw==</InverseQ>" +
            "<D>FRslEms19FH+9cCEB5JvbkEUY4F9SHWEgq5n2VlC3em2msIaRs6NokUtf4WIS63rE1RvVxJoQlvn8ZBFNQXJTeXcy1H7" +
            "z2ihB5sapMH/6rDxu/en62Zn+ECjNDYZ10Nn1caP6AYkHMyE77DjhWQ0dYjhgyKWPnVbBtNLJt3bvxk=</D></RSAKeyValue>";

        static public string Decrypt(string base64code)
        {
            try
            {
                UnicodeEncoding ByteConverter = new UnicodeEncoding();

                RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
                RSA.FromXmlString(privateKey);

                byte[] encryptedData;
                byte[] decryptedData;

                encryptedData = Convert.FromBase64String(base64code);
                decryptedData = RSA.Decrypt(encryptedData, false);

                return ByteConverter.GetString(decryptedData);
            }
            catch (Exception exc)
            {
                Console.WriteLine(exc.Message);
                return "";
            }
        }


        static public string Encrypt(string toEncryptString)
        {
            try
            {
                UnicodeEncoding ByteConverter = new UnicodeEncoding();

                byte[] dataToEncrypt = ByteConverter.GetBytes(toEncryptString);

                RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
                RSA.FromXmlString(publicKey);
                byte[] encryptedData = RSA.Encrypt(dataToEncrypt, false);

                string base64code = Convert.ToBase64String(encryptedData);
                return base64code;
            }
            catch (Exception exc)
            {
                Console.WriteLine(exc.Message);
                return "";
            }
        }
    }
}