文字的DES加密 MD5雜湊值 DSA的數字簽名 (轉)
文字的DES
為了對稱加密的,我將密碼進行封裝,先新建一個用於儲存密碼的類庫cl:
using System;
using System.Text ;
namespace cl
{
///
/// Class1 的摘要說明。
///
public class Class1
{
public Class1()
{
}
public string getiv()
{
string iv="********";//八位
return iv;
}
public string getkey()
{
string key="01160129";//八位
return key;
}
}
}
然後新建專案()
在 .中
using cl;
namespace test//給一個文字產生一個雜湊值
{
///
/// computehash 的摘要說明。
///
public class computehash : System..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( sender, System.EventArgs e)
{
// 在此處放置程式碼以初始化頁面
}
#region Web 窗體設計器生成的程式碼
overr protected void OnInit(EventArgs e)
{
//
// CODEGEN: 該是 Web 窗體設計器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
///
/// 設計器支援所需的方法 - 不要使用程式碼編輯器修改
/// 此方法的內容。
///
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[] =UTF8Encoding.UTF8 .GetBytes (TextBox1.Text );
//定義加密
DESCryptoServiceProvider objdes;
objdes=new DESCryptoServiceProvider ();
//設定加密物件值
objdes.IV =iv;
objdes.Key =key;
//建立加密器物件
ICryptoTranoobjEncryptor;
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.ToString (false);
//私有秘鑰
TextBox9.Text =objdsa.ToXmlString (true);
//數字簽名
TextBox7.Text =BitConverter.ToString (objdsa.SignData (source));
}
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10790690/viewspace-961272/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 加密與數字簽名加密
- MD5雜湊加密演算法加密演算法
- JAVA加解密19-數字簽名演算法DSAJava解密演算法
- Web安全專業術語講解:金鑰、隨機數、雜湊值、簽名、數字證書、httpsWeb隨機HTTP
- 數字簽名(java) (轉)Java
- js 雜湊雜湊值的模組JS
- 基於雜湊函式的簽名,Part-1函式
- Android 安全加密:數字簽名和數字證書Android加密
- Android安全加密:數字簽名和數字證書Android加密
- linux命令列印字串md5雜湊後的值Linux命令列字串
- 使用Des,MD5 加密.解密.字串.檔案 (轉)加密解密字串
- 深入理解加密、解密、數字簽名和數字證書加密解密
- 數字簽名
- 證書的數字簽名和認證 (轉)
- java使用RSA加密方式,實現數字簽名Java加密
- 公鑰加密、數字簽名、訊息認證加密
- RSA加密解密及數字簽名Java實現加密解密Java
- MD5簽名
- Java安全之對稱加密、非對稱加密、數字簽名Java加密
- 數字簽名原理
- 如何關閉win10的數字簽名_win10禁用數字簽名的方法Win10
- 用C++Builder建立數字簽名 (轉)C++UI
- "簡單"的加密簽名加密
- 數字簽名的原理和應用
- 大話數字簽名
- Elgamal數字簽名原理GAM
- 應用WSDK - 實踐Web Services的數字簽名(上) (轉)Web
- 取消WindowsXP下驅動程式數字簽名(轉)Windows
- 數字簽名是什麼?
- applet數字簽名APP
- 給軟體數字簽名
- windows10怎麼關閉數字簽名 win10永久關閉數字簽名的方法WindowsWin10
- win10 如何禁用數字簽名 win10 關閉數字簽名方法Win10
- 從數字簽名的工作原理看電子商務安全(轉)
- 對稱加密、非對稱加密、RSA、訊息摘要、數字簽名、數字證書與HTTPS簡介加密HTTP
- ExchangeServer2010安全郵件之數字簽名/加密Server加密
- MD5雜湊長度延展攻擊
- 詳解數字簽名的含義及作用