Obfuscate text and preserve line breaks
I would omit the StringBuilder here and would go with string.Join() by joining the processed innerLines and the processed lines like so  

public string Obfuscate(string text)
{

    var lines = text.Split(new[] { "\r\n" }, StringSplitOptions.None);

    for (int i = 0; i &lt; lines.Length; i++)
    {

        var innerLines = lines[i].Split(new[] { "\r" }, StringSplitOptions.None);
        for (int j = 0; j &lt; innerLines.Length; j++)
        {
            innerLines[j]= string.IsNullOrEmpty(innerLines[j]) ? string.Empty : myObfuscator.Obfuscate(innerLines[j]);
        }

        lines[i] = string.Join("\r", innerLines);

    }
    return string.Join(Environment.NewLine, lines);

}  


What I would add about your code would be some proper argument validation because the method is public. In addition I would move the check wether ther innerLine is NullOrEmpty inside the obfuscator.