使用C#+ASP.NET来进行RSA(非对称)加密.

原创 2004年06月22日 21:14:00

加密:

<%@ Page language="c#" AutoEventWireup="false"%>
<%@ Import Namespace= "System.Security.Cryptography" %>
<%@ Import Namespace= "System.IO" %>
<%@ Import Namespace= "System.Text" %>

<%
string word = Request.Params["word"];
if(word == null){
 Response.Write("没有输入密码啦!!!");
 return;
}
 
StreamReader sr = new StreamReader(@"f:/a.txt",UTF8Encoding.UTF8);
string readpublickey = sr.ReadToEnd();
sr.Close();
 
RSACryptoServiceProvider crypt=new RSACryptoServiceProvider();
UTF8Encoding enc=new UTF8Encoding();
byte[] bytes=enc.GetBytes(word);
crypt.FromXmlString(  readpublickey );
bytes = crypt.Encrypt( bytes,false );
string encryttext=Convert.ToBase64String(bytes);
string abb = Server.UrlEncode(encryttext);
Response.Write(abb);

Response.Write("<a href='take.aspx?word=" + encryttext + "'>" + encryttext + @"</a>");
%>

解密:

<%@ Page language="c#" AutoEventWireup="false"%>
<%@ Import Namespace= "System.Security.Cryptography" %>
<%@ Import Namespace= "System.IO" %>
<%@ Import Namespace= "System.Text" %>

<%
string word = Request.QueryString["word"];
if(word == null){
 Response.Write("没有传来密码啦!!!");
 return;
}
 
StreamReader sr = new StreamReader(@"f:/b.txt",UTF8Encoding.UTF8);
string readprivatekey  = sr.ReadToEnd();
sr.Close(); 

Response.Write("<br>" + word);

RSACryptoServiceProvider crypt=new RSACryptoServiceProvider();
UTF8Encoding enc=new UTF8Encoding();
byte[] bytes = Convert.FromBase64String(@word);
crypt.FromXmlString ( readprivatekey ) ;
byte[] decryptbyte = crypt.Decrypt( bytes,false );
string decrypttext=enc.GetString( decryptbyte );

Response.Write(decrypttext);

%>

公匙在a.txt文件中,私匙在b.txt文件中.

制造公匙和私匙的方法如下:

crypt=new RSACryptoServiceProvider();
publickey=crypt.ToXmlString(false);//公匙
privatekey=crypt.ToXmlString(true);//私匙
crypt.Clear();

//写入文本文件中
StreamWriter one=new StreamWriter(@"f:/a.txt",true,UTF8Encoding.UTF8);
one.Write(publickey);
StreamWriter two=new StreamWriter(@"f:/b.txt",true,UTF8Encoding.UTF8);
two.Write(privatekey);
one.Flush();
two.Flush();
one.Close();
two.Close();
MessageBox.Show("成功保存公匙和密匙!");

C#对称加密和非对称加密的Demo

  • 2010年08月31日 17:29
  • 73KB
  • 下载

C#非对称加密程序

using System; using System.Drawing; using System.Collections; using System.ComponentModel; using Sys...
  • 21aspnet
  • 21aspnet
  • 2007年03月24日 15:15
  • 2609

c#rsa 非对称加密

本文介绍c#的非对称加密算法使用,公钥加密,私钥解密
  • zghnpdswyp
  • zghnpdswyp
  • 2015年11月10日 17:57
  • 1278

不对称加密和解密,用C#实现

using System; using System.Security.Cryptography; using System.Text;   class RSACSPSample {      pub...
  • senkiner
  • senkiner
  • 2004年08月02日 09:38
  • 1351

ASP.NET MVC中使用JS实现不对称加密密码传输

ASP.NET MVC中登录页面中点击登录后,用户名、密码将被明文传输到Controller中,使用Fiddler等工具可以轻松截获并获取密码, 这是不安全的。 使用对称加密,如AES,密钥将被暴露前...
  • fanrong1985
  • fanrong1985
  • 2017年07月14日 05:25
  • 772

非对称加密,我终于理解了!

北京的Bob发了一个快递到广州的Alice,途中经过了上海,上海快递中心出现了一个黑客H,他偷偷打开了Bob给Alice的快递,然后偷偷把里边的衣服剪烂,再按照原样包装好发往广州,可以看到对于这样简单...
  • xiaoy20618
  • xiaoy20618
  • 2015年07月27日 13:37
  • 11264

.Net下的加密解密大全(6):玩转非对称加密

本博文来聊聊怎么玩转非对称加密吧,这里主要介绍.NET算法下的3种非对称加密算法:DSA,RSA,ECDsa。上两篇博文分别为Hash家族和非对称加密家族找到了lead,现在我们就为非对称加密技术找个...
  • ghostbear
  • ghostbear
  • 2012年04月25日 15:00
  • 1716

非对称加密

公钥可公开发布,用于发送方加密要发送的信息,私钥用于接收方解密接收到的加密内容。公私钥对计算时间较长,主要用于加密较少的数据。常用的非对称加密算法有RSA和ECC。公有链上交易数据全网可见,公众可以跟...
  • huanleyuan
  • huanleyuan
  • 2018年02月06日 17:44
  • 21

Android安全加密:非对称加密

介绍与对称加密算法不同,非对称加密算法需要两个密钥:公钥(publickey)和私钥(privatekey)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密;如果用私钥对数据进行...
  • axi295309066
  • axi295309066
  • 2016年09月10日 13:48
  • 4621

RSA非对称加密算法,加密和签名

RAS算法: 1、用RSA算法生成一对密钥,公钥发放给外部客户,私钥自己保管;有以下应用场景:      【公钥加密、私钥解密】或者【私钥签名、公钥验证】 2、非对称加解密的理解: 小明想秘密给...
  • LAMP_zy
  • LAMP_zy
  • 2015年10月21日 15:16
  • 1213
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用C#+ASP.NET来进行RSA(非对称)加密.
举报原因:
原因补充:

(最多只允许输入30个字)