可以用dsa和rsa,如:
using system;
using system.text;
using system.security.cryptography;
class dsacrypto_signdata {
public static void main(string[] args){
//先要將字符串轉(zhuǎn)換為字節(jié)數(shù)組,這與編碼有關(guān)。
string str = "this is a test.";
byte[] bytes = encoding.ascii.getbytes(str);
//選擇簽名方式,有rsa和dsa
dsacryptoserviceprovider dsac = new dsacryptoserviceprovider();
byte[] sign = dsac.signdata(bytes);
//sign便是出來(lái)的簽名結(jié)果。
//下面是認(rèn)證了
dsacryptoserviceprovider dsac2 = new dsacryptoserviceprovider();
dsac2.fromxmlstring(dsac.toxmlstring(false));
bool ver = dsac2.verifydata(bytes, sign);
if (ver) {
console.writeline("通過(guò)");
} else {
console.writeline("不能通過(guò)");
}
}
}
rsa類似,不過(guò)rsa比dsa慢得多,但比dsa安全。rsa可以選擇關(guān)鍵字的大小,越大越安全
新聞熱點(diǎn)
疑難解答
圖片精選