探討C#中字符串的加密

2010-08-28 10:44:50來源:西部e網(wǎng)作者:

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)鍵字的大小,越大越安全


 

關(guān)鍵詞:C#