This routine converts a string of text to a string of unicode characters. So the string:
"look@me.com"
Becomes:
UTF-8
"& #108;& #111;& #111;& #107;& #64;& #109;& #101;& #46;& #99;& #111;& #109;"
Long UTF-8
"look@me.com"
UTF-8 Hex
"look@me.com"
This effectively masks the address so that it is very difficult to be scanned and it is still effective.
Code:
<%@ Language=VBScript %>
<%
Function CloakIt(ByVal inTxt, ByVal iType)
' Convert An Input String To Unicode Character Codes
Dim iInd
Dim sOut
If Len(inTxt) = 0 Then
CloakIt = ""
Exit Function
End If
For iInd = 1 To Len(inTxt)
Select Case iType
Case 2
' Long UTF-8 encoding without semicolons
sOut = sOut & "&#" & Right("0000000" & CStr(Asc(Mid(inTxt, iInd, 1))), 7)
Case 3
' Hex encoding without semicolons
sOut = sOut & "&#x" & Hex(Asc(Mid(inTxt, iInd, 1)))
Case 4
' Hex encoding with semicolons
sOut = sOut & "&#x" & Hex(Asc(Mid(inTxt, iInd, 1))) & ";"
Case Else
' UTF-8 Unicode Encoding
sOut = sOut & "&#" & CStr(Asc(Mid(inTxt, iInd, 1))) & ";"
End Select
Next
CloakIt = sOut
End Function
%>
<html><head><title> Cloak-It
</title>
</head>
<body link=#000080 text=#000000 vLink=#008080 bgColor=#ffffff><font face="Tahoma,Arial,Helvetica,Verdana">
<h3 align=center>Cloak It - Email Address Cloaker</h3>
<FORM action="CloakIt.asp?entered=true" method=POST id=form1 name=form1>
<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=1>
<TR>
<TD ALIGN=RIGHT WIDTH=25%>Plain String:</TD>
<TD><INPUT type="text" SIZE=100 id=plain name=plain VALUE="<%= Request.Form("plain") %>"></TD>
</TR>
<TR>
<TD ALIGN=RIGHT><%
Select Case Request.Form("CloakType")
Case "2"
Response.Write "Long UTF-8 encoding:"
Case "3"
Response.Write "Hex encoding No "";"":"
Case "4"
Response.Write "Hex encoding With "";"":"
Case Else
Response.Write "UTF-8 Unicode Encoding:"
End Select
%></TD>
<TD><INPUT type="text" id=Cloaked name=Cloaked SIZE=100 VALUE="<%= Replace(CloakIt(Request.Form("plain"), Request.Form("CloakType")),"&", "&") %>"></TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Displayed Encoded String 1:</TD>
<TD><%= CloakIt(Request.Form("plain"), Request.Form("CloakType")) %></TD>
</TR>
<TR>
<TD ALIGN=RIGHT>Displayed Encoded String 2:</TD>
<TD><INPUT type="text" id=show name=show SIZE=100 VALUE="<%= CloakIt(Request.Form("plain"), Request.Form("CloakType")) %>"></TD>
</TR>
<TR>
<TD ALIGN=RIGHT VALIGN=TOP>Cloaking Type:</TD>
<TD><INPUT TYPE=radio NAME="CloakType" VALUE="1" <%If Request.Form("CloakType")="1" Then Response.Write " CHECKED"%>> UTF-8 Unicode Encoding<br>
<INPUT TYPE=radio NAME="CloakType" VALUE="2" <%If Request.Form("CloakType")="2" Then Response.Write " CHECKED"%>> Long UTF-8 encoding without semicolons<br>
<INPUT TYPE=radio NAME="CloakType" VALUE="3" <%If Request.Form("CloakType")="3" Then Response.Write " CHECKED"%>> Hex encoding without semicolons<br>
<INPUT TYPE=radio NAME="CloakType" VALUE="4" <%If Request.Form("CloakType")="4" Then Response.Write " CHECKED"%>> Hex encoding with semicolons
</TD>
</TR>
</TABLE>
<INPUT type="submit" value="Submit" name=Submit> <INPUT type="reset" value="Reset" id=reset1 name=reset1>
</FORM>
</font></body></html>
Bookmarks