一个可逆加密的例子

    技术2022-05-11  51

     <!--StartFragment-->

    <%@ Page language="c#" EnableViewState = "true" Codebehind="EncryptString.aspx.cs" AutoEventWireup="false" Inherits="eMeng.Exam.EncryptString" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD><title>一个可逆加密的例子</title><meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0"><meta name="CODE_LANGUAGE" content="Visual Basic 7.0"><meta name="vs_defaultClientScript" content="JavaScript"><meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"></HEAD><body><form id="Form1" method="post" runat="server"><p align="center">一个可逆加密的例子<asp:TextBox id="TextBox1" runat="server" Width="96%">http://dotnet.aspx.cc/</asp:TextBox><asp:RadioButtonList id="RadioButtonList1" runat="server" Font-Bold="True" RepeatDirection="Horizontal"AutoPostBack="True"></asp:RadioButtonList><asp:TextBox id="TextBox2" runat="server" Width="96%"></asp:TextBox><asp:TextBox id="Textbox3" runat="server" Width="96%"></asp:TextBox></p></form></body></HTML>

    <!--StartFragment-->using System;

    using System.Collections;using System.ComponentModel;using System.Drawing;using System.Web;using System.Web.SessionState;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.HtmlControls;using System.IO;using System.Text;using System.Security.Cryptography;namespace eMeng.Exam{/// <summary>/// EncryptString 的摘要说明。/// </summary>public class EncryptString : System.Web.UI.Page{protected System.Web.UI.WebControls.TextBox TextBox1;protected System.Web.UI.WebControls.RadioButtonList RadioButtonList1;protected System.Web.UI.WebControls.TextBox TextBox2;protected System.Web.UI.WebControls.TextBox Textbox3;protected System.Web.UI.HtmlControls.HtmlForm Form1;private void Page_Load(object sender, System.EventArgs e){// 在此处放置用户代码以初始化页面if(!this.IsPostBack){ArrayList MyList = new ArrayList();MyList.Add("加密");MyList.Add("解密");RadioButtonList1.DataSource = MyList;RadioButtonList1.DataBind();}}#region Web 窗体设计器生成的代码override protected void OnInit(EventArgs e){//// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。//InitializeComponent();base.OnInit(e);}/// <summary>/// 设计器支持所需的方法 - 不要使用代码编辑器修改/// 此方法的内容。/// </summary>private void InitializeComponent(){    this.RadioButtonList1.SelectedIndexChanged += new System.EventHandler(this.RadioButtonList1_SelectedIndexChanged);this.Load += new System.EventHandler(this.Page_Load);}#endregionprivate void RadioButtonList1_SelectedIndexChanged(object sender, System.EventArgs e){if( RadioButtonList1.SelectedIndex == 0)TextBox2.Text = EncryptText(TextBox1.Text);elseTextbox3.Text = DecryptText(TextBox2.Text);}// 加密public string EncryptText(String strText){return Encrypt(strText, "&%#@?,:*");}//'解密public String DecryptText(String strText){return Decrypt(strText, "&%#@?,:*");}//'加密函数private String Encrypt(String strText, String strEncrKey){Byte[] byKey = {};Byte[] IV  = {0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF};try{byKey = System.Text.Encoding.UTF8.GetBytes(strEncrKey.Substring(0, 8));DESCryptoServiceProvider des = new DESCryptoServiceProvider();Byte[] inputByteArray  = Encoding.UTF8.GetBytes(strText);MemoryStream ms = new MemoryStream();CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(byKey, IV), CryptoStreamMode.Write);cs.Write(inputByteArray, 0, inputByteArray.Length);cs.FlushFinalBlock();return Convert.ToBase64String(ms.ToArray());}catch(Exception ex){return ex.Message;}}//'解密函数private String Decrypt(String strText, String sDecrKey){Byte[] byKey  = {};Byte[] IV = {0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF};Byte[] inputByteArray = new byte[strText.Length];try{byKey = System.Text.Encoding.UTF8.GetBytes(sDecrKey.Substring(0, 8));DESCryptoServiceProvider des = new DESCryptoServiceProvider();inputByteArray = Convert.FromBase64String(strText);MemoryStream  ms = new MemoryStream();CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(byKey, IV), CryptoStreamMode.Write);cs.Write(inputByteArray, 0, inputByteArray.Length);cs.FlushFinalBlock();System.Text.Encoding encoding = System.Text.Encoding.UTF8;return encoding.GetString(ms.ToArray());}catch(Exception ex){return ex.Message;}}}}

     


    最新回复(0)