首页 新闻 赞助 找找看

.net技术:对文本框中输入的字符串进行加密、解密。。

0
悬赏园豆:100 [已解决问题] 解决于 2012-03-12 09:50

要求:

加密:

在一个文本框中输入一串字符串, 单击按钮加密。

解密:

单击解密按钮,在输出框中输出另一串字符串。获取解密密码。

我没有思路,该怎么弄,高手指点一下,求代码。。。我将感激不尽

呵呵,樱桃小丸子的主页 呵呵,樱桃小丸子 | 初学一级 | 园豆:3
提问于:2012-03-09 00:52
< >
分享
最佳答案
1

你用服务器控件textbox两个,然后再用两个服务器的button,你界面上面的加密和解密图标如果为了美观不方便用服务器的button的话,那你把button隐藏,然后用javascript找到button调用click事件。

服务器端button的click事件内获取textbox的值,再进行解密。解密的方式网上很多的。给你发一个可逆加解密的类

using System; 
using System.Security;
using System.Security.Cryptography;
using System.IO;
using System.Text;
using System.Threading;
namespace TRIP3DES
{
///<summary>
/// Class1 的摘要说明。
///</summary>
public class dllEncrypt
{
//密钥
private const string sKey = "qJzGEh6hESZDVJeCnFPGuxzaiB7NLQM3";
//矢量,矢量可以为空
private const string sIV = "qcDY6X+aPLw=";
//构造一个对称算法
private SymmetricAlgorithm mCSP = new TripleDESCryptoServiceProvider();
public dllEncrypt(){}
#region public string EncryptString(string Value)
///<summary>
/// 加密字符串
///</summary>
///<param name="Value">输入的字符串</param>
///<returns>加密后的字符串</returns>
public string EncryptString(string Value)
{
ICryptoTransform ct;
MemoryStream ms;
CryptoStream cs;
byte[] byt;
mCSP.Key = Convert.FromBase64String(sKey);
mCSP.IV = Convert.FromBase64String(sIV);
//指定加密的运算模式
mCSP.Mode = System.Security.Cryptography.CipherMode.ECB;
//获取或设置加密算法的填充模式
mCSP.Padding = System.Security.Cryptography.PaddingMode.PKCS7;
ct = mCSP.CreateEncryptor(mCSP.Key, mCSP.IV);
byt = Encoding.UTF8.GetBytes(Value);
ms = new MemoryStream();
cs = new CryptoStream(ms, ct, CryptoStreamMode.Write);
cs.Write(byt, 0, byt.Length);
cs.FlushFinalBlock();
cs.Close();
return Convert.ToBase64String(ms.ToArray());
}
#endregion
#region public string DecryptString(string Value)
///<summary>
/// 解密字符串
///</summary>
///<param name="Value">加过密的字符串</param>
///<returns>解密后的字符串</returns>
public string DecryptString(string Value)
{
ICryptoTransform ct;
MemoryStream ms;
CryptoStream cs;
byte[] byt;
mCSP.Key = Convert.FromBase64String(sKey);
mCSP.IV = Convert.FromBase64String(sIV);
mCSP.Mode = System.Security.Cryptography.CipherMode.ECB;
mCSP.Padding = System.Security.Cryptography.PaddingMode.PKCS7;
ct = mCSP.CreateDecryptor(mCSP.Key, mCSP.IV);
byt = Convert.FromBase64String(Value);
ms = new MemoryStream();
cs = new CryptoStream(ms, ct, CryptoStreamMode.Write);
cs.Write(byt, 0, byt.Length);
cs.FlushFinalBlock();
cs.Close();
return Encoding.UTF8.GetString(ms.ToArray());
}
#endregion
}
}
收获园豆:100
LCM | 大侠五级 |园豆:6876 | 2012-03-09 12:10

@呵呵,樱桃小丸子: 晕,我说得这么清楚了。页面就是获取服务器控件button然后调用click事件,后台就是直接用textbox的控件名称.Text做为参数传到我上面的函数中就可以了。你可以找本asp.net的书看一两个小时学一下基础的东西,然后很简单的。

LCM | 园豆:6876 (大侠五级) | 2012-03-09 13:44
其他回答(2)
0

点击加密时将字符串提交到服务器,通过服务器的加密代码进行加密,然后返回到客户端进行显示

点击解密时将解密字符串提交到服务器,通过服务器的解码代码进行解密,然后返回客户端进行显示

这过程中你也可以用ajax

az235 | 园豆:8483 (大侠五级) | 2012-03-09 08:29
0

给你参考一下16位加密解密的方法,希望可以解决你的问题

http://www.cnblogs.com/baiyuntian/archive/2011/11/10/2243959.html

KivenRo | 园豆:1734 (小虾三级) | 2012-03-09 08:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册