復制代碼 代碼如下:
<form runat="server">
隨機生成密鑰:<asp:Button runat="server" Text="隨機生成密鑰" /><br />
公鑰:<asp:TextBox runat="server" TextMode="MultiLine" ReadOnly="True"></asp:TextBox><br />
私鑰:<asp:TextBox runat="server" TextMode="MultiLine" ReadOnly="True"></asp:TextBox><br /><hr />
<br />
生成簽名:<br />
原文:
<asp:TextBox runat="server" TextMode="MultiLine"></asp:TextBox> <br />
私鑰:
<asp:TextBox runat="server" TextMode="MultiLine"></asp:TextBox><br />
簽名:
<asp:TextBox runat="server" TextMode="MultiLine" ReadOnly="True"></asp:TextBox>
<br />
<asp:Button runat="server" Text="生成簽名" />
<br />
<br /><hr />
<br />
驗證簽名:<br />
原文:<asp:TextBox runat="server" TextMode="MultiLine"></asp:TextBox><br />
公鑰:<asp:TextBox runat="server" TextMode="MultiLine"></asp:TextBox><br />
簽名:<asp:TextBox runat="server" TextMode="MultiLine"></asp:TextBox>
<br />
<asp:Button runat="server" Text="驗證簽名" />
</form>
復制代碼 代碼如下:
/// <summary>
/// 生成簽名
/// </summary>
/// <param></param>
/// <param></param>
protected void Button1_Click(object sender, EventArgs e)
{
DSACryptoServiceProvider objdsa = new DSACryptoServiceProvider();
objdsa.FromXmlString(tbxKey.Text);
byte[] source = System.Text.UTF8Encoding.UTF8.GetBytes(tbxContent.Text);
//數字簽名
tbxSign.Text = BitConverter.ToString(objdsa.SignData(source));
}
/// <summary>
/// 隨機生成密鑰
/// </summary>
/// <param></param>
/// <param></param>
protected void btncreateMY_Click(object sender, EventArgs e)
{
DSACryptoServiceProvider objdsa = new DSACryptoServiceProvider();
tbxcreateMY_publicKey.Text = objdsa.ToXmlString(false);
tbxcreateMY_key.Text = objdsa.ToXmlString(true);
}
/// <summary>
/// 驗證簽名
/// </summary>
/// <param></param>
/// <param></param>
protected void Button3_Click(object sender, EventArgs e)
{
DSACryptoServiceProvider objdsa = new DSACryptoServiceProvider();
byte[] fileHashValue = new SHA1CryptoServiceProvider().ComputeHash(System.Text.UTF8Encoding.UTF8.GetBytes(tbxContentYZ.Text));
string[] strSplit = tbxSignYZ.Text.Split('-');
byte[] SignedHash = new byte[strSplit.Length];
for (int i = 0; i < strSplit.Length; i++)
SignedHash[i] = byte.Parse(strSplit[i], System.Globalization.NumberStyles.AllowHexSpecifier);
objdsa.FromXmlString(tbxPublickeyYZ.Text);
bool ret = objdsa.VerifySignature(fileHashValue, SignedHash);
Response.Write(ret.ToString());
// Qcd.Core.Web.Messages.ShowDialog(ret.ToString());
}
新聞熱點
疑難解答
圖片精選