encodes email address randomly roughly 10% raw, 45% hex, 45% dec note that @ is always encoded and : never is
(string addr)
| 1544 | /// note that @ is always encoded and : never is |
| 1545 | /// </summary> |
| 1546 | private string EncodeEmailAddress(string addr) |
| 1547 | { |
| 1548 | var sb = new StringBuilder(addr.Length * 5); |
| 1549 | var rand = new Random(); |
| 1550 | int r; |
| 1551 | foreach (char c in addr) |
| 1552 | { |
| 1553 | r = rand.Next(1, 100); |
| 1554 | if ((r > 90 || c == ':') && c != '@') |
| 1555 | sb.Append(c); // m |
| 1556 | else if (r < 45) |
| 1557 | sb.AppendFormat("&#x{0:x};", (int)c); // m |
| 1558 | else |
| 1559 | sb.AppendFormat("&#{0};", (int)c); // m |
| 1560 | } |
| 1561 | return sb.ToString(); |
| 1562 | } |
| 1563 | |
| 1564 | private static Regex _codeEncoder = new Regex(@"&|<|>|\\|\*|_|\{|\}|\[|\]", RegexOptions.Compiled); |
| 1565 |