반응형

 

RSA의 공개키와 개인키를 XML 형식으로 생성하는 예제이다.

 

 

using System.Security.Cryptography;

public void CreateRSAKey() 
{
    using (RSA rsa = RSA.Create())
    {
        // 개인 키 추출
        RSAParameters privateKeyParameters = rsa.ExportParameters(true);

        // 개인 키를 TEXT 형식으로 출력
        rsa.ImportParameters(privateKeyParameters);
        string privateKeyText = rsa.ToXmlString(true);
        Console.WriteLine("\n개인 키:\n" + privateKeyText);

        // 공개 키 추출
        RSAParameters publicKeyParameters = rsa.ExportParameters(false);

        // 공개 키를 TEXT 형식으로 출력
        rsa.ImportParameters(publicKeyParameters);
        string publicKeyText = rsa.ToXmlString(false);
        Console.WriteLine("공개 키:\n" + publicKeyText);

    }
}

 

생성한 공개키를 이용해 암호화 하는 예제

public void Encrypt(string text)
{
	RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
    rsa.FromXmlString(publicKey);
    
    byte[] utf = (new UTF8Encoding()).GetBytes(text);
    
    byte[] encrypt = rsa.Encrypt(utf, false);
    
    string result = Convert.ToBase64String(encrypt);
}

 

생성한 개인키를 이용해 복호화 하는 예제

public void Decrypt(string text)
{
	RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
    rsa.FromXmlString(privateKey);
    
    byte[] base64 = Convert.FromBase64String(text);
    
    byte[] decrypt = rsa.Decrypt(base64, false);
    
    string dec = (new UTF8Encoding()).GetString(decrypt, 0, decrypt.Length);
        
    string result = dec;
}

 

반응형

'Spadeworks > C#' 카테고리의 다른 글

gRPC DateTime C# 예제  (0) 2023.09.14
C# Convert TimeSpan to DateTime  (0) 2023.09.14
반응형

1. .proto 파일에 "google/protobuf/timestamp.proto" 를 import 한다.

import "google/protobuf/timestamp.proto";

 

2. 파라미터 타입을 아래와같이 지정한다.

message TestRequest {
	google.protobuf.Timestamp dt = 1;
}

 

3. C# 클라이언트에서는 아래와같이 파라미터를 가공한다.

var request = new TestRequest() {
	dt = Timestamp.FromDateTime(DateTime.Now)
}

 

4. gRPC 서버에서는 파라미터를 아래와같이 가공한다.

DateTime dt2 = request.dt.ToDateTime();
반응형

'Spadeworks > C#' 카테고리의 다른 글

C# RSA 키 생성 예제  (0) 2023.09.14
C# Convert TimeSpan to DateTime  (0) 2023.09.14
반응형

DateTime을 Time Span으로 바꾸는 방법은 아래와 같다.

 

DateTime dt = DateTime.Now;

TimeSpan span = TimeSpan.FromTicks(dt.Ticks);



Console.WriteLine(span);

 

반대로, TimeSpan 값을 DateTime 으로 바꾸는 방법은 아래 두가지 방법이 있다.

 

DateTime dt2 = new DateTime() + span;
DateTime dt3 = new DateTime(span.Ticks);



Console.WriteLine(dt2);

Console.WriteLine(dt3);
반응형

'Spadeworks > C#' 카테고리의 다른 글

C# RSA 키 생성 예제  (0) 2023.09.14
gRPC DateTime C# 예제  (0) 2023.09.14

+ Recent posts