欢迎光临
我们一直在努力

文本的DES加密 MD5散列值 DSA的数字签名-.NET教程,评论及其它

建站超值云服务器,限时71元/月

文本的des加密

为了对称加密的安全,我将密码进行封装,先新建一个用于保存密码的类库cl:

using system;

using system.text ;

namespace cl

{

/// <summary>

/// class1 的摘要说明。

/// </summary>

public class class1

{

public class1()

{

}

public string getiv()

{

string iv="********";//八位

return iv;

}

public string getkey()

{

string key="01160129";//八位

return key;

}

}

}

然后新建asp.net项目(c#)

在 .aspx中

using cl;

namespace test//给一个文本产生一个散列值

{

/// <summary>

/// computehash 的摘要说明。

/// </summary>

public class computehash : system.web.ui.page

{

protected system.web.ui.webcontrols.label label1;

protected system.web.ui.webcontrols.textbox textbox1;

protected system.web.ui.webcontrols.button button1;

protected system.web.ui.webcontrols.textbox textbox3;

protected system.web.ui.webcontrols.button button2;

protected system.web.ui.webcontrols.textbox textbox4;

protected system.web.ui.webcontrols.button button3;

protected system.web.ui.webcontrols.textbox textbox5;

protected system.web.ui.webcontrols.button button4;

protected system.web.ui.webcontrols.button button5;

protected system.web.ui.webcontrols.label label2;

protected system.web.ui.webcontrols.textbox textbox7;

protected system.web.ui.webcontrols.label label3;

protected system.web.ui.webcontrols.textbox textbox8;

protected system.web.ui.webcontrols.textbox textbox9;

protected system.web.ui.webcontrols.label label4;

protected system.web.ui.webcontrols.button button6;

protected system.web.ui.webcontrols.label label5;

protected system.web.ui.webcontrols.textbox textbox2;

private void page_load(object sender, system.eventargs e)

{

// 在此处放置用户代码以初始化页面

}

#region web 窗体设计器生成的代码

override protected void oninit(eventargs e)

{

//

// codegen: 该调用是 asp.net web 窗体设计器所必需的。

//

initializecomponent();

base.oninit(e);

}

/// <summary>

/// 设计器支持所需的方法 – 不要使用代码编辑器修改

/// 此方法的内容。

/// </summary>

private void initializecomponent()

{

this.button2.click += new system.eventhandler(this.button2_click);

this.button1.click += new system.eventhandler(this.button1_click);

this.button3.click += new system.eventhandler(this.button3_click);

this.button4.click += new system.eventhandler(this.button4_click);

this.button5.click += new system.eventhandler(this.button5_click);

this.button6.click += new system.eventhandler(this.button6_click);

this.load += new system.eventhandler(this.page_load);

}

#endregion

private void button1_click(object sender, system.eventargs e)

{

byte[] bt=utf8encoding.utf8.getbytes(textbox1.text );//utf8需要对text的引用

md5cryptoserviceprovider objmd5;

objmd5=new md5cryptoserviceprovider ();

byte[] output=objmd5.computehash (bt);

textbox2.text =bitconverter.tostring (output);

}

private void button2_click(object sender, system.eventargs e)

{

byte[] bt=utf8encoding.utf8.getbytes(textbox1.text );//utf8需要对text的引用

md5cryptoserviceprovider objmd5;

objmd5=new md5cryptoserviceprovider ();

byte[] output=objmd5.computehash (bt);

textbox4.text =bitconverter.tostring (output);

}

private void button3_click(object sender, system.eventargs e)

{

class1 cl=new class1 ();

string iv1=cl.getiv ();

string key1=cl.getkey ();

byte[] iv=utf8encoding.utf8 .getbytes (iv1);

byte[] key=utf8encoding.utf8 .getbytes (key1);

byte[] source=utf8encoding.utf8 .getbytes (textbox1.text );

//定义加密对象

descryptoserviceprovider objdes;

objdes=new descryptoserviceprovider ();

//设置加密对象值

objdes.iv =iv;

objdes.key =key;

//创建加密器对象

icryptotransform objencryptor;

objencryptor=objdes.createencryptor (objdes.key ,objdes.iv );

//准备将加密的文本写入secret.txt中

filestream objfs;

objfs=new filestream (mappath("secret.txt"),filemode.create ,fileaccess.write );

//写入

cryptostream cryptostream;

cryptostream=new cryptostream (objfs,objencryptor,cryptostreammode.write );

cryptostream.write (source,0,source.length );

cryptostream.close ();

}

private void button4_click(object sender, system.eventargs e)

{

class1 cl=new class1 ();

string iv1=cl.getiv ();

string key1=cl.getkey ();

byte[] iv=utf8encoding.utf8 .getbytes (iv1);

byte[] key=utf8encoding.utf8 .getbytes (key1);

byte[] source=utf8encoding.utf8 .getbytes (textbox1.text );

//定义加密对象

descryptoserviceprovider objdes;

objdes=new descryptoserviceprovider ();

//设置加密对象值

objdes.iv =iv;

objdes.key =key;

//创建加密器对象

icryptotransform objencryptor;

objencryptor=objdes.createencryptor (objdes.key ,objdes.iv );

//写到内存

memorystream ms=new memorystream ();

cryptostream cs=new cryptostream (ms,objencryptor,cryptostreammode.write );

cs.write (source,0,source.length );

cs.flushfinalblock ();

ms.close ();

textbox5.text =bitconverter.tostring (ms.toarray ());

}

private void button5_click(object sender, system.eventargs e)

{

dsacryptoserviceprovider objdsa;

objdsa=new dsacryptoserviceprovider ();

byte[] source=utf8encoding.utf8 .getbytes (textbox1.text );

//公开秘钥

textbox8.text =objdsa.toxmlstring (false);

//私有秘钥

textbox9.text =objdsa.toxmlstring (true);

//数字签名

textbox7.text =bitconverter.tostring (objdsa.signdata (source));

}

}

}

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 文本的DES加密 MD5散列值 DSA的数字签名-.NET教程,评论及其它
分享到: 更多 (0)

相关推荐

  • 暂无文章