Os e-mails postados em páginas da web geralmente são extraídos automaticamente por algumas ferramentas, e alguns usuários ilegais usarão os e-mails extraídos para enviar spam. A maioria dessas ferramentas busca as informações depois de “mailto:” ou as informações antes e depois de “@” no link para atingir o objetivo de extrair e-mails. Eu estava olhando o código fonte do DotNetNuke (doravante denominado DNN) e encontrei uma boa forma de evitar que essas informações sejam extraídas automaticamente.
Existe tal função no DNN (em Globals.vb):
Função pública CloakText()Função CloakText(ByVal PersonalInfo As String) As String
If Not PersonalInfo não é nada então
Dim sb As New StringBuilder
'converte para códigos de caracteres ASCII, converte a string em formato de string codificada em ASCII
sb.Remover(0, sb.Comprimento)
Dim StringLength como inteiro = PersonalInfo.Length - 1
Para i como inteiro = 0 para StringLength
sb.Append(Asc(PersonalInfo.Substring(i, 1)).ToString)
Se eu <StringLength então
sb.Append(",")
Terminar se
Próximo
'construir bloco de script
Dim sbScript como novo StringBuilder
sbScript.Append(vbCrLf & "<script language=""javascript"">" & vbCrLf)
sbScript.Append("<!-- " & vbCrLf)
'Método fromCharCode: Retorna uma string de alguns valores de caracteres Unicode.
sbScript.Append("document.write(String.fromCharCode(" & sb.ToString & "))" & vbCrLf)
sbScript.Append("// -->" & vbCrLf)
sbScript.Append("</script>" & vbCrLf)
Retorna sbScript.ToString
Outro
Retornar Null.NullString
End If
End Function
Este código primeiro converte as informações a serem criptografadas no formato de string codificada em ASCII e, em seguida, grava-as na página usando o método document.write em javascript.
Testei o seguinte efeito e funciona bem. Você também pode tentar.
<html>
<cabeça>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Testar criptografia de informações</title>
</head>
<corpo>
Links que podem ser extraídos: <a href=" mailto:[email protected]">[email protected]</a><br >
Links que não podem ser extraídos:
<linguagem script="javascript">
<!--
document.write(String.fromCharCode(60,97,32,104,114,101,102,61,34,109,97,105,108,116,111,58,120,120,120,64,116,111,109,
46,99,111,109,34,62,120,120,120,64,116,111,109,46,99,111,109,60,47,97,62))
// -->
</script>
</body>
</html>
Se estiver interessado, você também pode usar métodos mais complexos para criptografar. Em uma palavra: as pessoas não podem mais obter informações facilmente!