예제 #1
0
        private List <AnonymizedData> GetAnonymizedData(string segmentText)
        {
            var anonymizedData = new List <AnonymizedData>();

            foreach (var pattern in _patterns)
            {
                var regex   = DecryptIfEncrypted(pattern);
                var matches = regex.Matches(segmentText);
                foreach (Match match in matches)
                {
                    if (match.Value.Length > 0)
                    {
                        var data = new AnonymizedData
                        {
                            MatchText = match.Value,
                            PositionInOriginalText = match.Index,
                            EncryptedText          = AnonymizeData.EncryptData(match.ToString(), _encryptionKey)
                        };

                        anonymizedData.Add(data);
                    }
                }
            }
            return(anonymizedData);
        }
예제 #2
0
        private string ProcessMatchData(Match match, RegexPattern pattern, bool isTagContent)
        {
            //Check if the match should be encrypted
            var encryptedText = pattern.ShouldEncrypt ? AnonymizeData.EncryptData(match.ToString(), _encryptionKey) : match.ToString();

            //For tag content we need to add {} for decrypting the data
            if (isTagContent)
            {
                return(string.Concat("{", encryptedText, "}"));
            }

            return(encryptedText);
        }