C#中字符串的加密可以用DSA和RSA,先要將字符串轉(zhuǎn)換為字節(jié)數(shù)組,這與編碼有關(guān)。再選擇簽名方式,有RSA和DSA,sign便是出來的簽名結(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便是出來的簽名結(jié)果。
//下面是認(rèn)證了 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可以選擇關(guān)鍵字的大小,越大越安全