C# 加密-RSA 高级
RSA
实际应用中是:接收方产生公钥和私钥,发送方用其公钥加密,再把加密后的内容发送给接收方。
CspParameters
的名称空间是:
System.Security.Cryptography
CspParameters cpSend = new CspParameters(); //Csp = Cryptography Service Provider
CspParameters cpReceive = new CspParameters();
cpSend.KeyContainerName = "SendTestContainer";
cpReceive.KeyContainerName = "ReceiveTestContainer";
RSACryptoServiceProvider rsaSend = new RSACryptoServiceProvider(cpSend); ;
RSACryptoServiceProvider rsaReceive = new RSACryptoServiceProvider(cpReceive);
rsaSend.fromXmlString(rsaReceive.ToXmlString(false)); //发送方使用接收方给它的公钥进行加密
string plaintext = "前几天我碰到一个朋友,约我跟马贼打架,我立马答应了他,因为我觉得这件事好无聊。";
byte[] ciphertext = rsaSend.Encrypt(System.Text.Encoding.UTF8.GetBytes(plaintext), false); //加密后
byte[] decryption = rsaReceive.Decrypt(ciphertext, false); //解密后
lbl.Width = 760;
lbl.Text = "";
lbl.Text += Convert.ToBase64String(ciphertext) + "<br />"; //显示加密后的
lbl.Text += System.Text.Encoding.UTF8.GetString(decryption) + "<br />"; //显示解密后的
lbl.Text += Server.HtmlEncode(rsaSend.ToXmlString(false)) + "<br />"; //显示发送方公钥
lbl.Text += Server.HtmlEncode(rsaReceive.ToXmlString(true)) + "<br />"; //显示接收方公钥和私钥
lbl.Text += Server.HtmlEncode(rsaReceive.ToXmlString(false)) + "<br />"; //显示接收方公钥
rsaSend.PersistKeyInCsp = true; //密钥要保存起来
//rsaSend.Clear();
rsaReceive.PersistKeyInCsp = true;
//rsaReceive.Clear();
在上面的代码中,我们使用 CspParameters 将密钥保存起来,ToXmlString
和 fromXmlString
将接收方的公钥告诉给发送方。
相关文档:
手机音乐播发器里有总文件总时间的统计,在酷狗播放器里找了一下没找到。那我想知道这些歌曲的总时间,该怎么办?
其实很简单,稍稍动动手,就能找到答案!
请参考如下步骤:
第一步,保存播放列表,把里面的歌曲保存到一个你喜欢的名字。
第二步,在播放列表上面点右键,到处播放列表到你找的到的地方。
经测试,最新 ......
Eval("")和Bind("") 这两种一个单向绑定,一个双向绑定,bind是双向绑定,但需数据源支持
ASP.NET 2.0改善了模板中的数据绑定操作,把v1.x中的数据绑定语法DataBinder.Eval(Container.DataItem, fieldname)简化为Eval(fieldname)。Eval方法与DataBinder.Eval一样可以接受一个可选的格式化字符串参 ......
1 NameSapce
1 1个namespace里面可以有多个类
2 namespace和cs文件是多对多的关系。
3 调用另一个namespace的声明,可以使用using <namespace> ,然后直接调用类名,或者使用namespace.类名来调用
4 namespace支持别名(alias) using namespace = namespace.classname,如using m ......
C#操作数据库,写来写去就那么几句套话,烦。尽管有SqlHelper之类的辅助类,但还是有一堆参数要自己填,继续烦。最近有朋友问起自动代码生成工具的原理,那今天就说说我的思路吧。我只会MS SQL SERVER,所以就只拿它说事儿了。
其实大的思路很简单,获取数据库中的比较原子的对象,比如字段、参数等,并找出数据库各字段类 ......
创建散列码的方法非常多,即使是同一种散列算法也可以通过许多类来实现,前面章节介绍的算一种,下面再介绍一种。以 SHA1
为例:
string plaintext = "明文";
byte[] srcBuffer = System.Text.Encoding.UTF8.GetBytes(plaintext);
HashAlgorithm hash = HashAlgorithm.Create("SHA1"); //将参数换 ......