Cấp bậc tác giả:

DOTNET

ASP.net - Webservice: Mã hóa, giải mã và giao tiếp Client - Server

Được viết bởi QuangIT ngày 10/09/2012 lúc 04:23 PM
Trong bài viết trước về webservice "Tìm hiểu về Web Services - asp.net C#". Mình có nói về webservice và tạo một webservice đơn giản. Trong bài này mình sẽ giới thiệu về cách mã hóa dữ liệu và giao tiếp giữa Server và Client thông quan webservice
  • 0
  • 12787

ASP.net - Webservice: Mã hóa, giải mã và giao tiếp Client - Server

Trong bài viết trước về webservice "Tìm hiểu về Web Services - asp.net C#". Mình có nói về webservice và tạo một webservice đơn giản. Trong bài này mình sẽ giới thiệu về cách mã hóa dữ liệu và giao tiếp giữa Server và Client thông quan webservice

I. Xây dựng hàm mã hóa và giải mã dữ liệu dùng thuật toán TripleDES mã hóa kiểu mã hóa MD5


Các hàm này bạn có thể xem hướng dẫn cách tạo chi tiết cũng như cách biên dịch thành dll trong video ở liên kết cuối bài. Bạn cần chú ý là khi sử dụng hai hàm này cần phải sử dụng cũng một Key.


1. Hàm mã hóa dữ liệu


/// <summary>

/// Mã hóa ký tự với kiểu mã hõa TripleDes - MD5

/// </summary>

/// <param name="key"></param>

/// <param name="toEncrypt"></param>

/// <returns></returns>

public string hmweb_Encrypt(string key, string toEncrypt)

{

    byte[] keyArray;

    byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(toEncrypt);

    MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider();

    keyArray = hashmd5.ComputeHash(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);

}


2. Hàm giải mã dữ liệu đã được mã hóa.


/// <summary>

/// Giải mã dữ liệu đã mã hóa

/// </summary>

/// <param name="key"></param>

/// <param name="toDecrypt"></param>

/// <returns></returns>

public string hmweb_Decrypt(string key, string toDecrypt)

{

    byte[] keyArray;

    byte[] toEncryptArray = Convert.FromBase64String(toDecrypt);


    MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider();

    keyArray = hashmd5.ComputeHash(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);

}


II. Xây dựng webservice giao tiếp giữa Server và Client.


Webservice cho phép máy chủ cung cấp dịch vụ trao đổi và truyền dữ liệu với máy client. Khi máy phía client gửi yêu cầu truy vấn dữ liệu, phía Server kiểm tra yêu cầu và trả lời yêu cầu dữ liệu của client bằng cách truyền dữ liệu dựa trên chuẩn SOAP (Theo định dang XML). Các dữ liệu truyền qua lại giữa Client và server thường có yêu cầu về tính bảo mật và an toàn dữ liệu nên thường được mã hóa bằng một thuật toán mã hóa nào đó mà cả Client và Server đều phải tuân thủ để đảm bảo truyền tải dữ liệu chính xác. Như vậy khi có yêu cầu từ phía Client thì Server sẽ mã hóa dữ liệu trả về và gửi cho phía Client. Phía Client nhận được dữ liệu mã hóa và dùng thuật toán giải mã để lấy dữ liệu.


Trong bài này mình minh họa cách mã hóa phía Server và Client giải mã. Có thể video sau mình sẽ làm chiều ngược lại, hoặc mã hóa và giải mã hai chiều.


Xây dựng webservice có hai phần.

Phần 1: Xây dựng Webservice phía server.

Phần 2: Xây dựng phía Client.

Bạn xem hướng dẫn trong video nhé


Ghi chú: Ví dụ trên chỉ có tính chất tham khảo. Thực tế thì tùy yêu cầu trao đổi dữ liệu cụ thể mà bạn viết ứng dụng webservice cho phù hợp.

Nguồn bài viết: Dngaz.com

BÌNH LUẬN BÀI VIẾT

Bài viết mới nhất

LIKE BOX

Bài viết được xem nhiều nhất

HỌC HTML