可以用dsa和rsa,如:
using system;
using system.text;
using system.security.cryptography;
class dsacrypto_signdata {
public static void main(string[] args){
//先要将字符串转换为字节数组,这与编码有关。
string str = "this is a test.";
byte[] bytes = encoding.ascii.getbytes(str);
//选择签名方式,有rsa和dsa
dsacryptoserviceprovider dsac = new dsacryptoserviceprovider();
byte[] sign = dsac.signdata(bytes);
//sign便是出来的签名结果。
//下面是认证了
dsacryptoserviceprovider dsac2 = new dsacryptoserviceprovider();
dsac2.fromxmlstring(dsac.toxmlstring(false));
bool ver = dsac2.verifydata(bytes, sign);
if (ver) {
console.writeline("通过");
} else {
console.writeline("不能通过");
}
}
}
rsa类似,不过rsa比dsa慢得多,但比dsa安全。rsa可以选择关键字的大小,越大越安全
新闻热点
疑难解答