38 lines
1.2 KiB
C#
38 lines
1.2 KiB
C#
using System.Text;
|
|
|
|
namespace EnvelopeGenerator.Application.Common.Extensions;
|
|
|
|
/// <summary>
|
|
/// Provides extension methods for decoding and extracting information from an envelope receiver ID.
|
|
/// </summary>
|
|
public static class EncodingExtensions
|
|
{
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="readOnlyId"></param>
|
|
/// <returns></returns>
|
|
public static string ToEnvelopeKey(this long readOnlyId)
|
|
{
|
|
//The random number is used as a salt to increase security but it is not saved in the database.
|
|
string combinedString = $"{Random.Shared.Next()}::{readOnlyId}::{Random.Shared.Next()}";
|
|
byte[] bytes = Encoding.UTF8.GetBytes(combinedString);
|
|
string base64String = Convert.ToBase64String(bytes);
|
|
|
|
return base64String;
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="input"></param>
|
|
/// <returns></returns>
|
|
public static string ToEnvelopeKey(this (string envelopeUuid, string receiverSignature) input)
|
|
{
|
|
string combinedString = $"{input.envelopeUuid}::{input.receiverSignature}";
|
|
byte[] bytes = Encoding.UTF8.GetBytes(combinedString);
|
|
string base64String = Convert.ToBase64String(bytes);
|
|
|
|
return base64String;
|
|
}
|
|
} |