能力值:
( LV9,RANK:140 )
|
-
-
2 楼
是接口,但不是调用外部文件。
下在是msdn的解释:
接口只包含方法、委托或事件的签名。方法的实现是在实现接口的类中完成的。
下面举个简单例子,我们想写个加解密字符串儿的方法,如下模样:
string Encrypt(string inString);//加密方法
string Decrypt(string inString);//解密方法
可是,我们有时候想用MD5加密,有时想用sha1加密或des加解密.
于是写了一个接口myInterface并写了三个类都继承了此接口class_mymd5、class_mysha1、class_mydes。如下:
interface myInterface
{
string Encrypt(string inString);//加密方法
string Decrypt(string inString);//解密方法
}
class class_mydes: myInterface
{
public string Encrypt(string inString)//加密方法
{
//实现串儿的des加密
return "加密后的串儿";
}
public string Decrypt(string inString)//解密方法
{
//实现解密
return "解密后的串儿";
}
}
class class_mymd5: myInterface
{
public string Encrypt(string inString)//加密方法
{
//实现串儿的md5加密
return "加密后的串儿";
}
public string Decrypt(string inString)//解密方法
{
//没法解密
return string.Empty;
}
}
class class_mysha1: myInterface
{
...略
}
使用时可以:
myInterface aa=new class_mymd5() as myInterface;
string bb=aa.Encrypt("我的口令"); //得到md5加密后的串儿.
aa=new class_mysha1() as myInterface;
bb=aa.Encrypt("我的口令"); //得到sha1加密后的串儿.
aa=new class_mydes() as myInterface;
bb=aa.Encrypt("我的口令"); //得到des加密后的串儿.
接口的好处在于,可以灵活扩充出其它实现来。可以把它看作是一种行为的规范,子类必须实现它指定的行为,楼主可以有限地参照一下抽象类的作用。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
明白了 非常感谢你的详细解释 对这玩意儿还不熟 研究ing
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
已经找到验证代码
调用的是RSAPKCS1SignatureDeformatter.VerifySignature 方法 (Byte[], Byte[])
来验证指定数据的 RSAPKCS#1 签名
private bool a(string A_0) { bool flag; using (RSACryptoServiceProvider provider = new RSACryptoServiceProvider()) { try { provider.FromXmlString(this.u); RSAPKCS1SignatureDeformatter deformatter = new RSAPKCS1SignatureDeformatter(provider); deformatter.SetHashAlgorithm("SHA1"); byte[] rgbSignature = Convert.FromBase64String(A_0.Trim()); //注:我们输入的注册码 byte[] rgbHash = new SHA1Managed().ComputeHash(Encoding.ASCII.GetBytes(this.t.Trim())); if (deformatter.VerifySignature(rgbHash, rgbSignature)) { return true; } flag = false; } catch { flag = false; } } return flag; }
剩下的就是解密 求rgbSignature。我是通过调用RSAFormatter.CreateSignature来求 始终不行 不知为何……
被这些微软提供的加解密算法搞晕了
|
|
|