C#中字符串的加密可以用DSA和RSA,先要將字符串轉(zhuǎn)換為字節(jié)數(shù)組,這與編碼有關(guān)。再選擇簽名方式,有RSA和DSA,sign便是出來(lái)的簽名結(jié)果。
可以用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類(lèi)似,不過(guò)RSA比DSA慢得多,但比DSA安全。RSA可以選擇關(guān)鍵字的大小,越大越安全。