数字签名简单的说过程如下:

发送者A向接受者B发送数据,A首先将数据进行散列函数运算,生成信息摘要,然后用私钥进行加密,生成签名信息,A将要发送的信息与签名信息一起发送给B,B接收到后,也将数据进行散列运行,并生成信息摘要,然后用公钥与签名进行验证核对信息是否被撰改。

asp.net实现数字签名实例代码:

需引入命名空间:using System.Security.Cryptography;

以下为引用的内容:
 /// <summary>
    /// 生成签名
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></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 name="sender"></param>
    /// <param name="e"></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 name="sender"></param>
    /// <param name="e"></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);
        Qcd.Core.Web.Messages.ShowDialog(ret.ToString());

    }

html页面代码:

以下为引用的内容:
  <form />
    </form>

 

http://www.cn-web.com/shtml/article/net/quer/2009/07/28/921.shtml

转自:http://www.cnblogs.com/skyaspnet/archive/2010/10/06/1844610.html

相关文章:

  • 2021-07-24
  • 2022-12-23
  • 2021-04-14
  • 2022-12-23
  • 2021-09-01
  • 2021-12-13
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-09-29
  • 2021-12-23
  • 2021-11-20
  • 2022-02-01
相关资源
相似解决方案