用C#做共享软件其实问题很多,不过所有的问题都会慢慢解决的,呵呵!
——————————————————————————————————
RSA作为一种非对称的加解密算法,在共享软件中经常用于软件的注册码的计算之类的,不过这几天在网上找了很久,都没有找到合适的文章,好不容易研究出来了(其实是我能力问题,呵呵),放出来,希望能够给有需要的朋友提供一点小小的帮助!
先看界面,很简单,就是实现一个由硬件码计算注册码的方法!

开始之前,请加上 using System.Security.Cryptography; 这个命名空间的引用!
第一步,获取公钥和私钥。
相关代码如下:
using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider()) { // 公钥 pubkey = rsa.ToXmlString(false); // 私钥 prikey = rsa.ToXmlString(true); }
这里 pubkey 和 prikey 分别是两个程序集变量(不知道在C#应该怎么说,呵呵)!
这里大家注意一下,如果这样的话,每一次的公钥和私钥可都是不一样的,呵呵,第一次生成后,应该把它提出来,然后保存下来,下一次就不要再这样取了,我这里只是演示一下而已,呵呵!
第二步,计算注册码:
using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider()) { rsa.FromXmlString(prikey); // 加密对象 RSAPKCS1SignatureFormatter f = new RSAPKCS1SignatureFormatter(rsa); f.SetHashAlgorithm("SHA1"); byte[] source = System.Text.ASCIIEncoding.ASCII.GetBytes(textBox硬件码.Text.Trim()); SHA1Managed sha = new SHA1Managed(); byte[] result = sha.ComputeHash(source);
byte[] b = f.CreateSignature(result); textBox注册码.Text = Convert.ToBase64String(b); }
相信这些代码对高手没什么好说的,用菜鸟也没有什么好说的,直接复制就可以用了,呵呵!
|