密码加密和解密(在线等待)

love55555 2004-09-27 01:33:41
/******************************************************************
* 密码加密
* ******************************************************************/
public static string Encrypt(string pToEncrypt, string sKey)
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] inputByteArray = Encoding.Default.GetBytes(pToEncrypt);
des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms,des.CreateEncryptor(),CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
StringBuilder ret = new StringBuilder();
foreach(byte b in ms.ToArray())
{
//Format as hex
ret.AppendFormat("{0:X2}", b);
}
ret.ToString();
return ret.ToString();
}
/******************************************************************
* 密码解密
* ******************************************************************/
public static string Decrypt(string pToDecrypt, string sKey)
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] inputByteArray = new byte[pToDecrypt.Length / 2];
for(int x = 0; x < pToDecrypt.Length / 2; x++)
{
int i = (Convert.ToInt32(pToDecrypt.Substring(x * 2, 2), 16));
inputByteArray[x] = (byte)i;
}
des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms,des.CreateDecryptor(),CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
StringBuilder ret = new StringBuilder();

return System.Text.Encoding.Default.GetString(ms.ToArray());
}
请具体解释他的参数,以及从和而来!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
...全文
664 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
feihu_02 2005-03-19
  • 打赏
  • 举报
回复
mark
zhrenxi 2004-12-02
  • 打赏
  • 举报
回复
up
yangflyingSQL 2004-10-17
  • 打赏
  • 举报
回复
mark
chengjunlin55555 2004-09-28
  • 打赏
  • 举报
回复
在System.Web.Security名称空间中的FormsAuthentication类中提供了HashPasswordForStoringInConfigFile方法,这个方法的目的正如它的名字所提示的,就是要加密存储在Form表单的口令。
using System.Web.Security;
private void login_Click(object sender, System.EventArgs e)
{
epwd=FormsAuthentication.HashPasswordForStoringInConfigFile(pwd.Text, "SHA1");
//epwd=FormsAuthentication.HashPasswordForStoringInConfigFile(pwd.Text, "MD5");
Response.Write(epwd);
}
例子:
<%@ Import Namespace="System.Web.Security"%>
<Script language="C#" runat=server>
private void Page_Load(object sender, System.EventArgs e)
{
string epwd = "1";
epwd=FormsAuthentication.HashPasswordForStoringInConfigFile(epwd, "MD5");
lbl1.Text = epwd;
}
</script>
<form id="form1" runat="server">
<asp:Label id="lbl1" runat="server"></asp:Label>
</form>
chengjunlin55555 2004-09-28
  • 打赏
  • 举报
回复
例子:
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Security.Cryptography" %>

<script language="C#" runat=server>
byte[] Convert2ByteArray(string strInput)
{
int intCounter;
char[] arrChar;

arrChar = strInput.ToCharArray();
byte[] arrByte = new byte[arrChar.Length];

for (intCounter=0; intCounter <= arrByte.Length-1; intCounter++)
arrByte[intCounter] = Convert.ToByte(arrChar[intCounter]);

return arrByte;
}

void Button_Click( Object sender , EventArgs e ) {
byte[] arrHashInput;
byte[] arrHashOutput;
MD5CryptoServiceProvider objMD5;

objMD5 = new MD5CryptoServiceProvider();
arrHashInput = Convert2ByteArray( txtInput.Text );
arrHashOutput = objMD5.ComputeHash( arrHashInput );
lblOutput.Text = BitConverter.ToString( arrHashOutput );
}

</Script>

<html>
<head><title>Hash.aspx</title></head>
<body>

<form Runat="Server">

<h2>Generate MD5 Hash</h2>

<b>Enter text to hash:</b>
<br/>
<asp:TextBox
id="txtInput"
TextMode="Multiline"
Columns="50"
Rows="10"
Runat="Server" />
<p>
<asp:Button
Text="Compute Hash!"
OnClick="Button_Click"
Runat="Server" />
<p>
<b>Hash value:</b>
<br/>
<asp:Label
ID="lblOutput"
Runat="Server" />

</form>
</body>
</html>


love55555 2004-09-27
  • 打赏
  • 举报
回复
sKey,加密的关键字
什么意思呀?给他传什么值呀!给个例子
huangj110 2004-09-27
  • 打赏
  • 举报
回复
csdn中有呀!md5算法就行了
20040216 2004-09-27
  • 打赏
  • 举报
回复
des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);

加密字符和加密向量,解密时需要的。8个字节,64位
zjchao 2004-09-27
  • 打赏
  • 举报
回复

你的加密采用的是DES算法,
  DES算法的入口参数有三个:Key、Data、Mode。其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。
  DES算法是这样工作的:如Mode为加密,则用Key 去把数据Data进行加密, 生成Data的密码形式(64位)作为DES的输出结果;如Mode为解密,则用Key去把密码形式的数据Data解密,还原为Data的明码形式(64位)作为DES的输出结果。
designonline 2004-09-27
  • 打赏
  • 举报
回复
public static string Encrypt(string pToEncrypt, string sKey)
pToEncrypt需要加密的字符,
sKey,加密的关键字

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧