http://www.fawcette.com/china/XmlFile.aspx?ID=298
http://www.c-sharpcorner.com/Code/2002/Dec/CryptEncryption.asp
asp里面实现的参考一下
http://www.edainfo.net/document/load.asp?lanid=1&doc=4&docid=472
一个组件值得看看
http://www.123aspx.com/redir.aspx?res=29881

解决方案 »

  1.   

    你要怎么用呢?RSA是一种非对称的加密算法,可以用来数字签名。具体的情况我不太了解但是我可以简单的说一说原理:
    不但要有RSA的加密算法还需要一个散列函数一般使用的是MD5。我们用散列函数将我们的明文计算猴得到一个很小的散列值(叫作摘要)我们用RSA加密算法中的私钥对他加密后产生一个新的摘要,将这个摘要发送给目标。
      

  2.   

    目标接到这个加密的摘要以后可以用公钥解密,然后利用公钥得到对称密码然后对加密文件解密,然后利用数字证书里面标识的散列函数将原文进行散列计算得到一个新的摘要,比较两个摘要是否相同就可以确定是原文否没有被改过。这就是简单的数字签名的过程。当然至于数字证书,和寻找一个可信赖的CA是以后的事情了。RSA在这个过程中起到一个加密的作用,因为他是非对称加密所以可以用来签名。其他的非对称加密算法也可以实现这个功能。
      

  3.   

    http://www.gohack.net/limd/Developer/download.asp?id=109
    guan zhu
      

  4.   

    http://www.gohack.net/limd/Developer/download.asp?id=109
    这个不能下载的 哪位有没有不是英文版的说明
      

  5.   

    public static void SignData() {
    RSACryptoServiceProvider rsac = new RSACryptoServiceProvider();
    byte[] src = new byte[1024]; FileStream fs = new FileStream("miwen.txt", FileMode.Open, FileAccess.Read);
    int len;
    MemoryStream ms = new MemoryStream();
    while ((len = fs.Read(src, 0, 64)) > 0) 
    {
    ms.Write(src, 0, len);
    }
    fs.Close();
    ms.Position = 0;
    MD5 sha = MD5.Create();
    byte[] result = rsac.SignData(ms, sha);
    FileStream res = new FileStream("Result.txt", FileMode.Create, FileAccess.Write);
    res.Write(result, 0, result.Length);
    res.Close();
    StreamWriter sw = new StreamWriter("RSA.key");
    sw.Write(rsac.ToXmlString(false));
    sw.Close();
    }public static bool VerifyData() {
    StreamReader sr = new StreamReader("RSA.key");
    String str = sr.ReadToEnd();
    sr.Close();
    RSACryptoServiceProvider rsac = new RSACryptoServiceProvider();
    rsac.FromXmlString(str);
    FileStream srcfs = new FileStream("miwen.txt", FileMode.Open, FileAccess.Read);
    byte[] src = new byte[1024];
    MemoryStream srcms = new MemoryStream();
    int len = 0;
    while ((len = srcfs.Read(src, 0, 64)) > 0) 
    {
    srcms.Write(src, 0, len);
    }
    srcfs.Close();
    srcms.Position = 0; FileStream fs = new FileStream("Result.txt", FileMode.Open, FileAccess.Read);
    MemoryStream ms = new MemoryStream();
    while ((len = fs.Read(src, 0, src.Length)) > 0) {
    ms.Write(src, 0, len);
    }
    fs.Close();
    return rsac.VerifyData(srcms.ToArray(), MD5.Create(), ms.ToArray());
    }
      

  6.   


                A的私钥                           A的公钥
                  |                                  |
                  |                密文和明文        |
     明文 ----> A:加密(SignData) ---------------> B:解密(VerifyData) ----> 明文
      

  7.   

    签名:先将明文用数据签名的方法SignData签名数据,并存储签名数据和公钥(用来认证的),注意不要存储私钥,这样不安全。认证:取到公钥并传入RSA,然后取出明文和签名数据,用VerifyData方法认证明文是否正确。如果返回false,证明明文被改变了。
      

  8.   

    要将大量的数据转化到RSA加密所允许的字节数,这就用到Hash算法,SignData和VerifyData使用的hash算法必须一样。
      

  9.   

    签名是一个散列的过程传输散列值的时候需要加密!!!正文一般不用RSA类型的加密算法加密,而是使用对称加密的方法加密。RSA只是加密对称密钥。可以使用MD5来散列(hash)明文。所以签名的过程简述如下:
    //发送方
    1、选择一个对称加密算法,加密数据,将密钥用RSA加密准备和密文一起发送。
    2、选择一个散列算法(hash),计算明文的hash值,用RSA加密。(签名过程)//接收方
    3、用RSA解密对称密钥,用对称密钥解密密文得到原文。
    4、用RSA解密hash值,得到原始摘要。
    5、再用相同的散列计算解密后的明文的散列值。
    6、比较两个散列值确定签名。
      

  10.   

    顺便说一下上面提到的方法中遇到的加密算法在.NET Framework里面都有!
      

  11.   

    呵呵,那么多Stars在帮你,我看你也不需要我再多说什么了吧?
    不行再找我。