Đăng Nhập

Vui lòng khai báo chính xác tên truy cập và mật khẩu!

Quên mật khẩu?

    Đây là hàm mã hóa trong C#:

      Admin
      Admin

      Giới tính : Nam

      Đến từ : TPHCM

      Ngày Tham gia : 03/04/2011

      Tổng số bài gửi : 2292

      #1

       Sat Oct 01, 2011 9:57 pm

      Đây là hàm mã hóa trong C#:
      Có 3 tham số:chuỗi cần mã hóa,key mã hóa(tùy chọn như là mật khẩu),3 là giá trị nhị phân true hoặc false là có sử dụng thuật toán mã hóa Md5 cho key hay ko?True là có còn false là ko,phương thức này trả về chuỗi đã mã hóa

      Code:
      public static string Encrypt(string toEncrypt, string key, bool useHashing)
              {
                  byte[] keyArray;
                  byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(toEncrypt);

                  if (useHashing)
                  {
                      MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider();
                      keyArray = hashmd5.ComputeHash(UTF8Encoding.UTF8.GetBytes(key));
                  }
                  else
                      keyArray = UTF8Encoding.UTF8.GetBytes(key);

                  TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider();
                  tdes.Key = keyArray;
                  tdes.Mode = CipherMode.ECB;
                  tdes.Padding = PaddingMode.PKCS7;

                  ICryptoTransform cTransform = tdes.CreateEncryptor();
                  byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);

                  return Convert.ToBase64String(resultArray, 0, resultArray.Length);
              } 

      Còn đây là hàm giải mã cũng có 3 tham số tương tự hàm mã hóa nhưng chuối nhập vào là chuỗi đã mã hóa!
      Và key nhập vào phải đúng với key đã nhập khi mã hóa!
      Nếu ko thì sẽ ko giải mã được!
      Code:
      public static string Decrypt(string toDecrypt, string key, bool useHashing)
              {
                  byte[] keyArray;
                  byte[] toEncryptArray = Convert.FromBase64String(toDecrypt);

                  if (useHashing)
                  {
                      MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider();
                      keyArray = hashmd5.ComputeHash(UTF8Encoding.UTF8.GetBytes(key));
                  }
                  else
                      keyArray = UTF8Encoding.UTF8.GetBytes(key);

                  TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider();
                  tdes.Key = keyArray;
                  tdes.Mode = CipherMode.ECB;
                  tdes.Padding = PaddingMode.PKCS7;

                  ICryptoTransform cTransform = tdes.CreateDecryptor();
                  byte[] resultArray= cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);

                  return UTF8Encoding.UTF8.GetString(resultArray);
              }