Từ 1 tới 3 trên tổng số 3 kết quả

Đề tài: MD5 in C# help?

  1. #1
    Ngày gia nhập
    01 2008
    Bài viết
    240

    Mặc định MD5 in C# help?

    VB Code:
    1. Public Function Encrypt(ByVal EncString As String) As String
    2.         'Variable Declarations
    3.  
    4.         Dim RanGen As New Random
    5.         Dim RanString As String = ""
    6.         Dim MD5String As String
    7.         Dim RanSaltLoc As String
    8.  
    9.         'Generates a Random number of under 4 digits
    10.  
    11.         While RanString.Length <= 3
    12.             RanString = RanString & RanGen.Next(0, 9)
    13.         End While
    14.  
    15.         'Converts the String to bytes
    16.  
    17.         EncStringBytes = Encoder.GetBytes(EncString & RanString)
    18.  
    19.         'Generates the MD5 Byte Array
    20.  
    21.         EncStringBytes = MD5Hasher.ComputeHash(EncStringBytes)
    22.  
    23.         'Affixing Salt information into the MD5 hash
    24.  
    25.         MD5String = BitConverter.ToString(EncStringBytes)
    26.         MD5String = MD5String.Replace("-", Nothing)
    27.  
    28.         'Finds a random location in the string to sit the salt
    29.  
    30.         RanSaltLoc = RanGen.Next(4, MD5String.Length)
    31.  
    32.         'Shoves the salt in the location
    33.  
    34.         MD5String = MD5String.Insert(RanSaltLoc, RanString)
    35.  
    36.         'Adds 0 for values under 10 so we always occupy 2 charater spaces
    37.  
    38.         If RanSaltLoc < 10 Then
    39.             RanSaltLoc = "0" & RanSaltLoc
    40.         End If
    41.  
    42.         'Shoves the salt location in the string at position 3
    43.  
    44.         MD5String = MD5String.Insert(3, RanSaltLoc)
    45.  
    46.         'Returns the MD5 encrypted string to the calling object
    47.  
    48.         Return MD5String
    49.     End Function
    đó là 1 cái hàm để Encrypt 1 chuỗi.
    Mình có 1 số câu hỏi sau.
    1-Chiều dài tối đa của chuỗi EncString là bao nhiêu?
    2- Sau khi Encrypt nó luôn trả lại 1 chuỗi ở dang HEX có chiều dài 38,mình giả sử nếu mình cho chuỗi EncString dài 1 tỷ ký tự thì nó có Encrypt hết 1 tỷ ký tự không nhỉ hay chỉ mấy trăm ký tự đầu?
    Thanks
    Time

  2. #2
    Ngày gia nhập
    01 2008
    Nơi ở
    Gameloft Studio
    Bài viết
    294

    Mình ko hiểu bạn quan tâm vấn đề này làm gì.

    MD5 là thuật toán mã hóa 1 chiều.
    + Có nghĩa là từ 1 chuỗi A -> mã hóa -> B nhưng từ B sẽ ko chuyển thành A được.

    MD5 là thuật toán mã hóa 128bit và đó cũng là chiều dài của nó khi trả về.
    128bit thì sẽ là 16bytes. Chuyển sang chuỗi HEX như của C# thì 1 bytes chiếm 2 ký tự nữa. Vậy chuỗi tối đa chỉ là 32 ký tự (không tính khoảng trắng).

    Cho dù bạn để 1 ký tự hay cho vào 1kb để mã hóa thì nó cũng ra chừng đó... 32 ký tự.

  3. #3
    Ngày gia nhập
    06 2007
    Nơi ở
    Hà Nội
    Bài viết
    361

    md5 c# hỗ trợ sẵn rồi thì phải , dùng thôi , đọc các giải pháp lập trình c# .
    Đê hôm nào code 1 chương trình chơi
    Blog tổng quan kiến thức về viễn thông : http://tongquanvienthong.blogspot.com/

    mSPDict từ điển android hỗ trợ liên kết tra trên các trình đọc sách điện tử và tra sách giấy thông qua camera
    http://www.tinhte.vn/threads/691731/

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn