using System.Text; namespace EnvelopeGenerator.Application.Common.Extensions; /// /// Provides extension methods for decoding and extracting information from an envelope receiver ID. /// public static class EncodingExtensions { /// /// /// /// /// 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; } /// /// /// /// /// 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; } }