JavaScript 和asp.net配合编码字符串

时间:2022-04-23
本文章向大家介绍JavaScript 和asp.net配合编码字符串,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

     .net 的System.Text.ASCIIEncoding 和System.BitConvertor类配合在服务端加密字符串,客户端使用Javascript解密字符串。代码如下:

<script language="javascript">
 /*
 ==========================================================
 This function helps protect the email address from the evil spam-bots
 that scan web pages for useful data such as (email addresses). 
 Instead of using the data directly, the encoded value is stored in the
 html and decoded when required.
 ==========================================================
 */
 function decode(ServerEncoded)
 {
 // The ServerEncoded parameter is a string that contains the encoded data.
 // Each character in the ServerEncoded parameter has been converted into 
 // a two digit number (hex / base16). This function converts the
 // series of numbers back into the normal form and returns the 
 // decoded string to the client
 // holds the decoded string
 var res = "";
 // go through and decode the full input server encoded string
 for (i=0; i < ServerEncoded.length;)
 {
 // holds each letter (2 digits)
 var letter = "";
 letter = ServerEncoded.charAt(i) + ServerEncoded.charAt(i+1)
 // build the real decoded value
 res += String.fromCharCode(parseInt(letter,16));
 i += 2;
 }
 //return the new decoded string to allow it to be rendered to screen
 return res;
 }
 /*
 ==========================================================
 This function gets a reference to the server encrypted string and
 then decrypts this using the decode() function and sets the
 txtDecrypted value to the value return by the decode() function
 ==========================================================
 */
 function GetEmailAndDecode() {
 //get the table <A class=iAs style="FONT-WEIGHT: normal; FONT-SIZE: 100%; PADDING-BOTTOM: 1px; COLOR: darkgreen; BORDER-BOTTOM: darkgreen 0.07em solid; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" href="#" target=_blank itxtdid="3146774">element</A>
 var txtSvrEncr = document.getElementById('txtServerEncrypted');
 var txtJSDecr = document.getElementById('txtDecrypted');
 txtJSDecr.value = decode(txtSvrEncr.value);
 var txtAllTog = document.getElementById('txtAllTogether');
 txtAllTog.value = decode(txtAllTog.value);
 }
</script>
public partial class _Default : System.Web.UI.Page 
{
 protected void Page_Load(object sender, EventArgs e)
 {
 #region Email Encryption 
 //if javascript is enabled do the encoding
 if (Request.Browser.JavaScript)
 {
  //do the encryption using the raw email
 txtServerEncrypted.Text = System.BitConverter.ToString(
 System.Text.ASCIIEncoding.ASCII.GetBytes(
 (txtRawEmail.Text))).Replace("-", "");
 //do the encryption using the raw email
 txtAllTogether.Text = System.BitConverter.ToString(
 System.Text.ASCIIEncoding.ASCII.GetBytes(
 (txtRawEmail.Text))).Replace("-", "");
 }
 else
 {
 //couldnt find javascript so just use normal email
 txtServerEncrypted.Text = txtRawEmail.Text;
 txtAllTogether.Text = txtRawEmail.Text;
 }
 #endregion
 }
}

具体参见:Simple web based obfuscation