Untitled

 avatar
unknown
plain_text
10 months ago
2.9 kB
5
Indexable
using Newtonsoft.Json.Serialization;
using Newtonsoft.Json;

using NJsonSchema;

using System.Security.Cryptography;
using System.Text;
using System.Text.Json.Serialization;
using System.Text.RegularExpressions;
using System.Xml.Serialization;
using IdentityModel;
using System.Runtime.CompilerServices;
using System.ComponentModel;
using System;
using System.Reflection.Metadata;
using Microsoft.VisualBasic;
using System.Buffers;
using System.Collections.Generic;
using System.IO.Compression;
using System.Linq.Expressions;
using ConsoleApp1;
using System.Net.Sockets;
using OfficeOpenXml;
using System.ComponentModel.DataAnnotations;
using System.IO;
using System.Linq;
using System.Net.Http;
using System.Threading.Tasks;
using System.Net.Http.Headers;
using System.Net.Mail;
using System.Globalization;    

public static async Task Main()
    {
        using RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();

        string publicKeyBase64 = @"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDirMTuNWDWnn5jK7TaLDae37eJExUEKX8g+w+hQsbbIimXs9ix8RveG9XNWStjSPxg1Srr5Hul7SvbV9gcgYXbX06/X8w90OgeA8JyEy2ZUx7PIU52ISxWodYPEWgEeWRVbogWD6sXsCESSUJktjMhkqSRKcArIMPbdqAPQK6rdQIDAQAB";

        LoginModel userLogin = new LoginModel()
        {
            CreateDate = DateTime.UtcNow,
            AgencyCode = "8d003b",
            UserCode = "9f4b54",
        };
        string rawData = JsonConvert.SerializeObject(userLogin);
        string encrypted = AsymmetricEncryptionManager.Encrypt(rawData, publicKeyBase64);

        string token = publicKeyBase64 + encrypted;
    }

public static class AsymmetricEncryptionManager
{
    public static string Encrypt(string data, string publicKeyBase64)
    {
        using (RSACryptoServiceProvider rsaCryptoServiceProvider = new RSACryptoServiceProvider())
        {
            byte[] publicKeyBytes = Convert.FromBase64String(publicKeyBase64);
            rsaCryptoServiceProvider.ImportSubjectPublicKeyInfo(publicKeyBytes, out _); // .ImportRSAPublicKey(publicKeyBytes, out _);
            byte[] byteData = Encoding.UTF8.GetBytes(data);
            byte[] encryptedData = rsaCryptoServiceProvider.Encrypt(byteData, false);
            return Convert.ToBase64String(encryptedData);
        }
    }

    public static string Decrypt(string cipherText, string privateKeyBase64)
    {
        using (RSACryptoServiceProvider rsaCryptoServiceProvider = new RSACryptoServiceProvider())
        {
            byte[] privateKeyBytes = Convert.FromBase64String(privateKeyBase64);
            rsaCryptoServiceProvider.ImportRSAPrivateKey(privateKeyBytes, out _);
            byte[] cipherDataAsByte = Convert.FromBase64String(cipherText);
            byte[] encryptedData = rsaCryptoServiceProvider.Decrypt(cipherDataAsByte, false);
            return Encoding.UTF8.GetString(encryptedData);
        }
    }
}
Editor is loading...
Leave a Comment