• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Mã Hóa Dữ Liệu

Các bài viết hướng dẫn về Visual Basic .NET và C#

Điều hành viên: tungcan5diop, QUANITGROBEST

Hình đại diện của người dùng
vuathongtin
Điều hành viên
Điều hành viên
Bài viết: 1028
Ngày tham gia: CN 02/05/2010 10:03 pm
Đến từ: Xứ sở DG
Has thanked: 2 time
Been thanked: 104 time
Liên hệ:

Mã Hóa Dữ Liệu

Gửi bàigửi bởi vuathongtin » T.Hai 28/06/2010 1:25 am

Thủ thuật: Mã Hóa Dữ Liệu
Tác giả: vuathongtin
Mô tả: Các phương pháp mã hóa dữ liệu : theo cấp độ bảo mật



Mã hóa với mục đích làm cho dữ liệu không thể đọc được bởi bất cứ ai, ngoại trừ những ai được cho chép đọc. Mã hóa sử dụng thuật toán và khóa để biến đổi dữ liệu từ hình thức đơn giản rõ ràng (plain hay cleartext), làm biến dữ liệu sang hình tức mật mã vô nghĩa (code hay ciphertext). Chỉ có những ai có thông tin giải mã thì mới giải mã được và đọc được dữ liệu.

1. Mã hóa bằng phương pháp tăng mã ASCII lên 1:

Mã: Chọn hết

ChrW(AscW(kitu) + 1)


ChrW : chuyển mã ASCII --> ký tự (hỗ trợ Unicode)
ASCW : chuyển ký tự --> ASCII . ví dụ : ASCW(A) = 65

  1. Function mahoa(ByVal chuoi As String) As String
  2.         For i As Integer = 1 To chuoi.Length
  3.             Mid(chuoi, i, 1) = ChrW(AscW(Mid(chuoi, i, 1)) + 1)
  4.         Next
  5.         Return chuoi
  6.     End Function

Test :
chuoi = Cau Lac Bo Vb
mahoa(chuoi) --> Dbv!Mbd!Cp!Wc

Giải mã : ChrW(AscW(kytu) - 1)
  1. Function giaima(ByVal chuoi As String) As String
  2.         For i As Integer = 1 To chuoi.Length
  3.             Mid(chuoi, i, 1) = ChrW(AscW(Mid(chuoi, i, 1)) - 1)
  4.         Next
  5.         Return chuoi
  6.     End Function
  7.  


Hạn chế : ASCII giới hạn từ 0 -255 --> nếu cộng ngoài khoảng này sẽ gặp lỗi. :D

Mở rộng phương pháp mã hóa tăng mã ASCII : Cộng (trừ) mã ASCII với 1 số bất kỳ (ko nhất thiết là 1) --> Phương pháp Malgo - Biến đổi ký tự theo kiểu lên xuống lần lượt

Xem thêm các thuật toán mở rộng phương pháp mã hóa tăng mã ASCII tại bài viết Ba phương pháp mã hóa chuỗi đơn giản của Alexander Đặng Nhật Anh
http://www.caulacbovb.com/forum/viewtop ... =27&t=9274

Ngoài ra còn một số thuật toán cũng dựa vào pp cộng trừ mã ASCII

  1. Function mahoa2(ByVal chuoi As String) As String
  2.         Dim Str As Integer
  3.         For i As Integer = 1 To chuoi.Length - 1
  4.             If AscW(Mid(chuoi, i, 1)) < 128 Then
  5.                 Str = AscW(Mid(chuoi, i, 1)) + 128
  6.             ElseIf AscW(Mid(chuoi, i, 1)) > 128 Then
  7.                 Str = AscW(Mid(chuoi, i, 1)) - 128
  8.             End If
  9.             Mid(chuoi, i, 1) = ChrW(Str)
  10.         Next
  11.         Return chuoi
  12.     End Function
  13.  


Hàm này : thực hiện cả 2 chức năng mã hóa và giải mã
mã hóa = mahoa2(chuoi)
giải mã = mahoa2(mã hóa )


2. Mã hóa sử dụng toán tử XOR :

Nguyên tắc : khi XOR một số với một giá trị nào đó hai lần thì bạn sẽ nhận lại chính số đó.
Kiểu mã hóa này đưa ra thông báo yêu cầu người dùng nhập vào một khóa dùng để mã hóa. Người dùng cần nhớ chính xác từ khóa này để giải mã file sau này.

Mã hóa XOR :

  1. Function mahoa_xor(ByVal chuoi As String, ByVal key As String) As String
  2.         mahoa_xor = ""
  3.         Dim kitu As String
  4.         If key = "" Then Exit Function
  5.         For i As Short = 0 To chuoi.Length - 1
  6.             kitu = chuoi.Trim.Substring(i, 1)
  7.             mahoa_xor = mahoa_xor & (AscW(kitu) Xor CShort(key)) & " "
  8.         Next
  9.     End Function


Test :
Chuoi : chào mừng các bạn đến với câu lạc bộ vb
Key : 123
Result : 24 19 155 20 91 22 7824 21 28 91 24 154 24 91 25 7898 21 91 362 7876 21 91 13 7840 18 91 24 153 14 91 23 7898 24 91 25 7842 91 13 25

Giải mã XOR

  1. Function giaima_xor(ByVal chuoi As String, ByVal key As String) As String
  2.         giaima_xor = ""
  3.         Dim list As New List(Of String)
  4.         If key = "" Then Exit Function
  5.         list.AddRange(Strings.Split((RichTextBox1.Text.Trim), " "))
  6.         For i As Integer = 0 To list.Count - 1
  7.             giaima_xor += ChrW(CShort(list.Item(i).Trim) Xor CShort(key))
  8.         Next
  9.     End Function


PP dùng toán tử XOR có thể chỉ dùng 1 hàm để mã hóa /giải mã ( vì XOR(XOR(so)) = so) mà :D )
  1. Function mahoa_xor(ByVal chuoi As String, ByVal key As Short)
  2.         For i As Integer = 1 To chuoi.Length
  3.             Mid(chuoi, i, 1) = ChrW(AscW(Mid(chuoi, i, 1)) Xor key)
  4.         Next
  5.         Return chuoi
  6.     End Function
  7.  


3. Mã hóa MD5 :
  1. Imports System.Security.Cryptography

  1. Public Function MD5(ByVal str As String) As String
  2.         Dim provider As MD5CryptoServiceProvider = New MD5CryptoServiceProvider()
  3.         Dim bytValue() As Byte
  4.         Dim bytHash() As Byte
  5.         Dim strOutput As String = ""
  6.         Dim i As Integer
  7.  
  8.         bytValue = System.Text.Encoding.Unicode.GetBytes(str)
  9.         bytHash = provider.ComputeHash(bytValue)
  10.         provider.Clear()
  11.         For i = 0 To bytHash.Length - 1
  12.             strOutput &= bytHash(i).ToString("x").PadLeft(2, "0")
  13.         Next
  14.         Return strOutput
  15.     End Function
  16.  


Ứng dụng : Mã hóa user/pass .
Chú ý : mã hóa MD5 không có giải mã. Vì thế cách để kiểm tra user/pass nhập vào là : chuyển user/pass nhập vào sang MD5 rồi so sánh với user/pass trong CSDL. ---> Cách mã hóa này khá hay :)

4.Mã Hóa Bằng Thuật Toán DES (Data Encryption Standard)

Về mặt khái niệm, thông thường thuật toán mã hoá DES là thuật toán mở, nghĩa là mọi người đều biết thuật toán này. Điều quan trọng nhất là chìa khoá của DES có độ dài tới 56 bit, nghĩa là số lần thử tối đa để tìm được chìa khoá lên đến 2^56, trung bình là 2^55 = 36.028.797.018.963.968 lần, một con số rất lớn!.

DES được thực hiện nhờ các phép dịch, hoán vị và các phép toán logic trên các bit. Mỗi ký tự trong bức thư hay bản tin cần mã hoá được biểu diễn bởi 2 số hexa hay 8 bít. DES mã hoá từng khối 64 bít tương đương 16 số hexa. Để thực hiện việc mã hoá DES sử dụng một chìa khoá cũng dưới dạng 16 số hexa hay 64 bít tức 8 byte, nhưng các bít thứ 8 trong các byte này bị bỏ qua trong khi mã hoá vì vậy độ lớn thực tế của chìa khoá là 56 bit. Ví dụ, ta mã hoá một bản tin hexa "0123456789ABCDEF" với chìa khoá là "5A5A5A5A5A5A5A5A" thì kết quả là "72AAE3B3D6916E92". Nếu kết quả này được giải mã với cùng chìa khoá "5A5A5A5A5A5A5A5A" thì ta sẽ thu lại được đúng bản tin "0123456789ABCDEF".

DES bao gồm 16 vòng, nghĩa là thuật toán chính được lặp lại 16 lần để tạo ra bản tin được mã hoá.

Sau đây chúng tôi sẽ trình bày quy trình của thuật toán DES.

Chuẩn bị chìa khoá:

Bước đầu tiên là chuyển 64 bit chìa khoá qua một bảng hoán vị gọi là Permuted Choice hay PC-1 để thu được chìa khoá mới có 56 bit.

Sau khi vệc chuẩn bị chìa khoá và dữ liệu mã hoá hoàn thành, thực hiện mã hoá bằng thuật toán DES. Đầu tiên, khối dữ liệu đầu vào 64 bit được chia thành hai nửa, L và R. L gồm 32 bit bên trái và R gồm 32 bit bên phải. Quá trình sau đây được lặp lại 16 lần tạo thành 16 vòng của DES gồm 16 cặp L[0]-L[15] và R[0]-R[15]:

1. R[r-1]- ở đây r là số vòng, bắt đầu từ 1- được lấy và cho qua bảng E (E-bit Selection Table), bảng này giống như một bảng hoán vị, có điều là một số bit được dùng hơn một lần do vậy nó sẽ mở rộng R[r-1] từ 32 bit lên 48 bit để chuẩn bị cho bước tiếp theo.

2. 48 bit R[r-1] được XOR với K[r] và được lưu trong bộ nhớ đệm, vì vậy R[r-1] không thay đổi.

3. Kết quả của bước trước lại được chia thành 8 đoạn, mỗi đoạn 6 bit, từ B[1] đến B[8]. Những đoạn này tạo thành chỉ số cho các bảng S (Substitution) được sử dụng ở bước tiếp theo. Các bảng S, là một bộ 8 bảng (S[1]-S[8]) 4 hàng, 16 cột. Các số trong bảng có độ dài 4 bit vì vậy có giá trị từ 0 đến 15.

4. Bắt đầu từ B[1], bit đầu và cuối của khối 6 bit được lấy ra và sử dụng làm chỉ số hàng của bảng S[1], nó có giá trị từ 0 đến 3, và 4 bit giữa được dùng làm chỉ số cột, từ 0 đến 15. Giá trị được chỉ đến trong bảng S được lấy ra và lưu lại. Việc này được lặp lại đối với B[2] và S[2] cho đến B[8] và S[8]. Lúc này bạn có 8 số 4 bit, khi nối lại với nhau theo thứ tự thu được sẽ tạo ra một chuỗi 32 bit.

5. Kết quả của bước trước được hoán vị bit bằng bảng hoán vị P (Permutation).

6. Kết quả thu được sau khi hoán vị được XOR với L[r-1] và chuyển vào R[r]. R[r-1] được chuyển vào L[r].

7. Lúc này bạn có L[r] và R[r] mới. Bạn tiếp tục tăng r và lặp lại các bước trên cho đến khi r= 17, đIều đó có nghĩa là 16 vòng đã được thực hiện và các chìa khoá phụ K[1]-K[16] đã được sử dụng.

Khi đã có L[16] và R[16], chúng được ghép lại với nhau theo cách chúng bị tách ra (L[16] ở bên trái và R[16] ở bên phải) thành 64 bit. 64 bit này được hoán vị để tạo ra kết quả cuối cùng là dữ liệu 64 bit đã được mã hoá.

Giải mã:
Việc giải mã dùng cùng một thuật toán như việc mã hoá. Để giải mã dữ liệu đã được mã hoá, quá trình như giống như mã hoá được lăp lạI nhưng các chìa khoá phụ được dùng theo thứ tự ngược lạI từ K[16] đến K[1], nghĩa là trong bước 2 của quá trình mã hoá dữ liệu đầu vào ở trên R[r-1] sẽ được XOR với K[17-r] chứ không phảI với K[r].

Nguồn : http://www.tapchibcvt.gov.vn/News/PrintView.aspx?ID=17851

Mình chỉ nêu sơ lược để các bạn nắm ý chính thôi, nếu các bạn muốn xem thêm thì tải file bên dưới về xem.

Để xem code cài đặt mã hóa DES cài bạn có thêm tham khảo bài viết Mã hoá/Giải mã tập tin theo kiểu bảo mật cao của vo_minhdat2007 . http://www.caulacbovb.com/forum/viewtopic.php?f=23&t=139
Vì có sẵn rùi nên mình ko post lên làm gì. Nếu muốn tìm hiểu chi tiết hơn thì vào
http://support.microsoft.com/kb/301070
Tập tin đính kèm
Ma Hoa XOR.rar
Chương trình mã hóa dữ liệu
(9.07 KiB) Đã tải 877 lần
ATBM_Download.com.vn.zip
Tài liệu về mã hóa dữ liệu
(783.25 KiB) Đã tải 1119 lần
Sửa lần cuối bởi vuathongtin vào ngày T.Tư 30/06/2010 10:21 pm với 12 lần sửa.


Bùi Thành Nhân
CNTT-Sở Thông tin & Truyền thông tỉnh Phú Yên
giasulaptrinh.com
Skype:vuathongtin

Hình đại diện của người dùng
vo_minhdat2007
Quản trị
Quản trị
Bài viết: 2227
Ngày tham gia: CN 17/07/2005 1:40 am
Has thanked: 13 time
Been thanked: 87 time
Liên hệ:

Re: Mã Hóa Dữ Liệu

Gửi bàigửi bởi vo_minhdat2007 » T.Hai 28/06/2010 8:35 am

Sao lại phải dùng ASCII trong VB.NET hả bạn? Dùng AscW và ChrW, hỗ trợ Unicode luôn :D

  1.     Function mahoa(ByVal chuoi As String) As String
  2.         mahoa = ""
  3.         Dim kytu As String
  4.         For i As Integer = 0 To chuoi.length - 1
  5.             kytu = chuoi.substring(i, 1)
  6.             mahoa = mahoa & ChrW(AscW(kytu) + 1)
  7.         Next
  8.     End Function


Test:

Original: Câu lạc bộ VB
Encrypted: Dãv!mẢd!cỚ!WC
------
Còn dòng này trong MD5:

  1. bytValue = System.Text.Encoding.UTF8.GetBytes(str)


Nên sửa thành:

  1. bytValue = System.Text.Encoding.Unicode.GetBytes(str)

Hình đại diện của người dùng
tdat00
Thành viên tích cực
Thành viên tích cực
Bài viết: 136
Ngày tham gia: T.Bảy 29/03/2008 8:18 am
Đến từ: QNgãi
Has thanked: 8 time
Been thanked: 2 time
Liên hệ:

Re: Mã Hóa Dữ Liệu

Gửi bàigửi bởi tdat00 » T.Hai 28/06/2010 9:45 am

em nhớ hồi xưa trong VBLib có hướng dẫn mã hóa dùng XOR với một số random ngẫu nhiên đấy. Em đã dựa theo và viết 1 chương trình encrypt mặc dù vẫn chưa hiểu nguyên lí hoạt động của nó :D

Hè này cũng tạm rảnh nên đang nghiên cứu lại RSA và DES :D
Kẻ đẹp trai nhất chính là ta
Dung nham ngẫm kĩ cũng mặn mà
Hok biết ba trăm năm lẻ nữa
Thế gian ai có đẹp hơn ta

Há Há Há :)) :)) :))

Hình đại diện của người dùng
vuathongtin
Điều hành viên
Điều hành viên
Bài viết: 1028
Ngày tham gia: CN 02/05/2010 10:03 pm
Đến từ: Xứ sở DG
Has thanked: 2 time
Been thanked: 104 time
Liên hệ:

Re: Mã Hóa Dữ Liệu

Gửi bàigửi bởi vuathongtin » T.Hai 28/06/2010 10:08 am

a vo_minhdat2007 tuyệt vời. Nhờ sự chỉ giáo của a mà em đc học hỏi nhiều.Thank nha :x
Bùi Thành Nhân
CNTT-Sở Thông tin & Truyền thông tỉnh Phú Yên
giasulaptrinh.com
Skype:vuathongtin

Hình đại diện của người dùng
vo_minhdat2007
Quản trị
Quản trị
Bài viết: 2227
Ngày tham gia: CN 17/07/2005 1:40 am
Has thanked: 13 time
Been thanked: 87 time
Liên hệ:

Re: Mã Hóa Dữ Liệu

Gửi bàigửi bởi vo_minhdat2007 » T.Hai 28/06/2010 10:31 am

tdat00 đã viết:em nhớ hồi xưa trong VBLib có hướng dẫn mã hóa dùng XOR với một số random ngẫu nhiên đấy. Em đã dựa theo và viết 1 chương trình encrypt mặc dù vẫn chưa hiểu nguyên lí hoạt động của nó :D

Hè này cũng tạm rảnh nên đang nghiên cứu lại RSA và DES :D


Theo mình thì mã hoá MD5 là ổn nhất hiện nay. DES thì có dịch 1 bài TUT (dịch thôi chứ cũng không nghiên cứu sâu), còn RSA thì chưa nghe, để Google xem sao :P

@vuathongtin: Mình rất thích các bài viết của bạn, tuy kiến thức chưa nhiều nhưng rất nhiệt tình, chắc chắn tương lai tốt :). Box cần nhiều bài viết như vậy để thảo luận sôi nổi.

Hình đại diện của người dùng
tdat00
Thành viên tích cực
Thành viên tích cực
Bài viết: 136
Ngày tham gia: T.Bảy 29/03/2008 8:18 am
Đến từ: QNgãi
Has thanked: 8 time
Been thanked: 2 time
Liên hệ:

Re: Mã Hóa Dữ Liệu

Gửi bàigửi bởi tdat00 » T.Hai 28/06/2010 1:20 pm

vo_minhdat2007 đã viết:Theo mình thì mã hoá MD5 là ổn nhất hiện nay.


em nhớ ko nhầm thì MD5 là mã hash, mã hóa được nhưng ko giải mã ngược lại được mà? Làm sao bác đưa vào ứng dụng bảo mật được???
Kẻ đẹp trai nhất chính là ta
Dung nham ngẫm kĩ cũng mặn mà
Hok biết ba trăm năm lẻ nữa
Thế gian ai có đẹp hơn ta

Há Há Há :)) :)) :))

Hình đại diện của người dùng
vo_minhdat2007
Quản trị
Quản trị
Bài viết: 2227
Ngày tham gia: CN 17/07/2005 1:40 am
Has thanked: 13 time
Been thanked: 87 time
Liên hệ:

Re: Mã Hóa Dữ Liệu

Gửi bàigửi bởi vo_minhdat2007 » T.Hai 28/06/2010 1:24 pm

À xin lỗi, mình quên mất. Nhưng nếu về bảo vệ mật khẩu thì MD5 là tốt rồi :D

gatoi_it
Thành viên trung thành
Thành viên trung thành
Bài viết: 207
Ngày tham gia: T.Tư 26/03/2008 6:10 pm
Đến từ: Quê cha đất tổ
Been thanked: 4 time
Liên hệ:

Re: Mã Hóa Dữ Liệu

Gửi bàigửi bởi gatoi_it » T.Hai 28/06/2010 2:35 pm

vo_minhdat2007 đã viết:À xin lỗi, mình quên mất. Nhưng nếu về bảo vệ mật khẩu thì MD5 là tốt rồi :D

MD5 vẫn scan ra đc đó, thử coi! MD6 coi chưa
XFARM.CC

Hình đại diện của người dùng
vuathongtin
Điều hành viên
Điều hành viên
Bài viết: 1028
Ngày tham gia: CN 02/05/2010 10:03 pm
Đến từ: Xứ sở DG
Has thanked: 2 time
Been thanked: 104 time
Liên hệ:

Re: Mã Hóa Dữ Liệu

Gửi bàigửi bởi vuathongtin » T.Hai 28/06/2010 4:12 pm

Theo mình tìm hiểu thì DES có 2 loại : DES với khóa đối xứng và bất đối xứng
Tập tin đính kèm
Thuật toán mã hoá bảo mật DES.rar
Thông tin về phương pháp Mã Hóa DES
(13.95 KiB) Đã tải 550 lần
Sửa lần cuối bởi vuathongtin vào ngày T.Tư 30/06/2010 8:22 pm với 3 lần sửa.
Bùi Thành Nhân
CNTT-Sở Thông tin & Truyền thông tỉnh Phú Yên
giasulaptrinh.com
Skype:vuathongtin

MrB
Thành viên tích cực
Thành viên tích cực
Bài viết: 158
Ngày tham gia: T.Tư 26/03/2008 7:03 pm
Been thanked: 1 time

Re: Mã Hóa Dữ Liệu

Gửi bàigửi bởi MrB » T.Hai 28/06/2010 9:29 pm

gatoi_it đã viết:MD5 vẫn scan ra đc đó, thử coi! MD6 coi chưa

Nếu mật khẩu dài hoặc không có trong từ điển thì tìm ra không đc đâu

gatoi_it
Thành viên trung thành
Thành viên trung thành
Bài viết: 207
Ngày tham gia: T.Tư 26/03/2008 6:10 pm
Đến từ: Quê cha đất tổ
Been thanked: 4 time
Liên hệ:

Re: Mã Hóa Dữ Liệu

Gửi bàigửi bởi gatoi_it » T.Hai 28/06/2010 10:30 pm

MrB đã viết:Nếu mật khẩu dài hoặc không có trong từ điển thì tìm ra không đc đâu

uhm, nhưng nghe nói ở nga đã viết đc cái crack md5, nó scan 1s đc mấy nghìn từ ;))
XFARM.CC

MrB
Thành viên tích cực
Thành viên tích cực
Bài viết: 158
Ngày tham gia: T.Tư 26/03/2008 7:03 pm
Been thanked: 1 time

Re: Mã Hóa Dữ Liệu

Gửi bàigửi bởi MrB » T.Hai 28/06/2010 10:37 pm

Chương trình rất đơn giản quan trọng là wordlist.txt có password cần tìm hay không thôi

Hình đại diện của người dùng
vo_minhdat2007
Quản trị
Quản trị
Bài viết: 2227
Ngày tham gia: CN 17/07/2005 1:40 am
Has thanked: 13 time
Been thanked: 87 time
Liên hệ:

Re: Mã Hóa Dữ Liệu

Gửi bàigửi bởi vo_minhdat2007 » T.Hai 28/06/2010 10:47 pm

Đúng vậy, MD5 không thể "crack" được. Ở đây crack có nghĩa là bẻ khoá, không phải mò mẵm, mà phải từ 1 cái đã có rồi suy luận ra cái gốc. Ngay đến tác giả mã hoá còn không thể bẻ khoá được chứ huống gì phần mềm :D

Hình đại diện của người dùng
vuathongtin
Điều hành viên
Điều hành viên
Bài viết: 1028
Ngày tham gia: CN 02/05/2010 10:03 pm
Đến từ: Xứ sở DG
Has thanked: 2 time
Been thanked: 104 time
Liên hệ:

Re: Mã Hóa Dữ Liệu

Gửi bàigửi bởi vuathongtin » T.Hai 28/06/2010 11:16 pm

Có các dạng mã hóa sau:
- Hash: Băm (MD5, SHA, SHA2, TrippleDES)
- Symmetric: Mã hóa đối xứng (Rjndael)
- Asymmetric: Mã hóa bất đối xứng (RSA)

MD5 là loại Hash, độ dài hình như là 128 bit (ko nhớ rõ). Lý thuyết băm thì các bạn mở giáo trình đại học hay các sách về Cryptography ra tham khảo, có thể hiểu như là mã hóa mất thông tin, do vậy ko thể giải ngược lại. Nói cho chính xác thì do đụng độ trong mảng băm nên chỉ có source X => hash Y chứ ko có chuyện hash Y => source X, vì từ hash Y thì mình ko biết source là X1, X2 hay là Xn

Độ dài của MD5 là 128 bit thì nó có thể biểu diễn 2 mũ 128 giá trị. Nhưng giá trị chuỗi thì vô hạn => chắc chắn có đụng độ, tức là có nhiều hơn 1 chuỗi khi băm sẽ cho cùng 1 hash.

Vấn đề giải mã Hash chỉ là vấn đề sức mạnh của máy tính, máy càng mạnh chạy càng nhanh thì giải mã càng lẹ, giống như vét cạn ấy.

Lần cuối mình đọc được tin là 1 trong những siêu máy tính vài ngàn con CPU giải được RSA 512 bit trong 2 năm (ko biết giải RSA phức tạp hơn SHA và MD5 hay ko).

Nếu muốn mã hóa 1 chiều bạn nên dùng SHA256 hoặc SHA512 .NET có hỗ trợ chung với MD5 ấy.

Mã hóa tại sao dùng Hash mà ko dùng Symmetric hay Asymmetric ? Tốc độ. Password cũng ko cần dịch ngược lại để làm gì. Hash được đánh giá tốt hay không là do tốc độ của thuật toán. Trong trường hợp password, 2 password cho cùng 1 hash tỉ lệ rất nhỏ 1/(2 mũ 128) với MD5 và 1/(2 mũ 512) với SHA2 512 bit. Cái nữa là lưu pasword bằng hash thì hacker có lấy được cả DB cũng chẳng biết lấy gì giải, trừ khi mua siêu máy tính. Với Hash và Symmetric 1 chuỗi thường cho ra 1 chuỗi mã hóa cố định, do vậy người ta thường cho thêm salt (1 số random bất kì) để tạo ra các hash khác nhau khi truyền qua internet. Mình làm RSA trên .NET thì mỗi lần mã hóa thì nhận được kết quả khác nhưng chạy chậm lắm (vì phải giải mã ngược lại nữa, trong khi Hash thi ko cần).

Nguồn : http://ddth.com/showthread.php?t=86609&page=2

Bạn dùng chương trình mã hóa dưới đây để tạo chuỗi bất kỳ sang MD5 ruì nhập vào ô "MD5 sum to reverse" của trang web http://md5.gromweb.com/ --> đảm bảo nó dò ko ra.
Trừ khi bạn nhập chuỗi chưa mã hóa của bạn vào ô "String to convert to MD5" của trang web đó thì nó mới dò ra nhanh đc
Tập tin đính kèm
MD5.rar
chương trình dùng để mã hóa sang MD5
(8.37 KiB) Đã tải 508 lần
Sửa lần cuối bởi vuathongtin vào ngày T.Hai 28/06/2010 11:31 pm với 1 lần sửa.
Bùi Thành Nhân
CNTT-Sở Thông tin & Truyền thông tỉnh Phú Yên
giasulaptrinh.com
Skype:vuathongtin

gatoi_it
Thành viên trung thành
Thành viên trung thành
Bài viết: 207
Ngày tham gia: T.Tư 26/03/2008 6:10 pm
Đến từ: Quê cha đất tổ
Been thanked: 4 time
Liên hệ:

Re: Mã Hóa Dữ Liệu

Gửi bàigửi bởi gatoi_it » T.Hai 28/06/2010 11:30 pm

MrB đã viết:Chương trình rất đơn giản quan trọng là wordlist.txt có password cần tìm hay không thôi

nó tự generation ra word đó, ko mò trong db
còn đây là cái cục cracker http://infinityexists.com/videos/fpga-md5-cracker/

Bạn dùng chương trình mã hóa dưới đây để tạo chuỗi bất kỳ sang MD5 ruì nhập vào ô "MD5 sum to reverse" của trang web http://md5.gromweb.com/ --> đảm bảo nó dò ko ra.

tìm trong hashkiller đi, scan từ mấy chục web
XFARM.CC

MrB
Thành viên tích cực
Thành viên tích cực
Bài viết: 158
Ngày tham gia: T.Tư 26/03/2008 7:03 pm
Been thanked: 1 time

Re: Mã Hóa Dữ Liệu

Gửi bàigửi bởi MrB » T.Hai 28/06/2010 11:48 pm

nó tự generation ra word đó, ko mò trong db

Password thường có 8 kí tự bao gồm A-z,0-9. Như vậy có 60^8 trường hợp, muốn crack đc phải mất hàng tháng

Hình đại diện của người dùng
vuathongtin
Điều hành viên
Điều hành viên
Bài viết: 1028
Ngày tham gia: CN 02/05/2010 10:03 pm
Đến từ: Xứ sở DG
Has thanked: 2 time
Been thanked: 104 time
Liên hệ:

Re: Mã Hóa Dữ Liệu

Gửi bàigửi bởi vuathongtin » T.Ba 29/06/2010 12:12 am

Theo mình thì MD5 có thể giải mã được nhưng phải phụ thuộc vào : thời gian và tốc độ xử lý của máy tính.
Nói chung MD5 vẫn là cách mã hóa an toàn nhất hiện nay
Bùi Thành Nhân
CNTT-Sở Thông tin & Truyền thông tỉnh Phú Yên
giasulaptrinh.com
Skype:vuathongtin

Hình đại diện của người dùng
tdat00
Thành viên tích cực
Thành viên tích cực
Bài viết: 136
Ngày tham gia: T.Bảy 29/03/2008 8:18 am
Đến từ: QNgãi
Has thanked: 8 time
Been thanked: 2 time
Liên hệ:

Re: Mã Hóa Dữ Liệu

Gửi bàigửi bởi tdat00 » T.Ba 29/06/2010 9:34 am

Em không hiểu các bác đang nói "mã hóa", "crack", hay "giải mã" với MD5 là sao nữa?

MD5 hay SHA chỉ dùng để checksum tính toàn vẹn của nội dung thông tin, đảm bảo nó không bị chỉnh sửa khi lưu truyền trên Internet. Muốn sử dụng thì bác phải tính mã hash MD5 cho thông tin của bác, rồi gửi cả 2 thứ này đến người ta. Người ta sẽ tính mã MD5 cho thông tin nhận được một lần nữa rồi đối chiếu với mã MD5 bác gửi, nếu khớp nhau thì chắc chắn nội dung họ nhận được hoàn toàn giống với thông tin bác gửi, chưa bị thay đổi chỉnh sửa. Như thế thông tin gửi đi mọi người đều có thể đọc được.

Còn mã hóa là bác dùng một key mã hóa (gọi là password cũng đc) để encrypt một thông tin gốc thành thông tin đã mã hóa, sau đó chỉ gửi thông tin đã mã hóa đến người ta. Người đó sẽ dùng key giải mã (như kiểu của RSA) hoặc chính key mã hóa (kiểu của DES) để decrypt văn bản đã mã hóa thành văn bản gốc. Như thế chỉ những người có key mới đọc được thông tin.

Không biết ý các bác là sao?
Kẻ đẹp trai nhất chính là ta
Dung nham ngẫm kĩ cũng mặn mà
Hok biết ba trăm năm lẻ nữa
Thế gian ai có đẹp hơn ta

Há Há Há :)) :)) :))

Hình đại diện của người dùng
vuathongtin
Điều hành viên
Điều hành viên
Bài viết: 1028
Ngày tham gia: CN 02/05/2010 10:03 pm
Đến từ: Xứ sở DG
Has thanked: 2 time
Been thanked: 104 time
Liên hệ:

Re: Mã Hóa Dữ Liệu

Gửi bàigửi bởi vuathongtin » T.Tư 30/06/2010 8:28 pm

tdat00 đã viết:Em không hiểu các bác đang nói "mã hóa", "crack", hay "giải mã" với MD5 là sao nữa?

Bạn nói vậy là ko chính xác rồi, hiện này MD5 được dùng phổ biến trong việc mã hóa user/pass của WEB đấy. Bạn ngâm cứu lại đi. Mình cũng đang quan tâm đến vấn đề bảo mật dữ liệu vì thế bạn nào có quan tâm thì cùng thảo luận
:D
Bùi Thành Nhân
CNTT-Sở Thông tin & Truyền thông tỉnh Phú Yên
giasulaptrinh.com
Skype:vuathongtin

Hình đại diện của người dùng
tdat00
Thành viên tích cực
Thành viên tích cực
Bài viết: 136
Ngày tham gia: T.Bảy 29/03/2008 8:18 am
Đến từ: QNgãi
Has thanked: 8 time
Been thanked: 2 time
Liên hệ:

Re: Mã Hóa Dữ Liệu

Gửi bàigửi bởi tdat00 » T.Tư 30/06/2010 9:28 pm

vuathongtin đã viết:
tdat00 đã viết:Em không hiểu các bác đang nói "mã hóa", "crack", hay "giải mã" với MD5 là sao nữa?

Bạn nói vậy là ko chính xác rồi, hiện này MD5 được dùng phổ biến trong việc mã hóa user/pass của WEB đấy. Bạn ngâm cứu lại đi. Mình cũng đang quan tâm đến vấn đề bảo mật dữ liệu vì thế bạn nào có quan tâm thì cùng thảo luận
:D


à, vậy ra ý của bác là mã hóa 1 chiều. Đặc tính này cũng dùng chung cho các chương trình quản lý thông tin khác vì ưu điểm không thể dịch ngược lại. Em cứ tưởng là mã hóa file để trao đổi vẫn đảm bảo tính toàn vẹn thông tin chứ ^^
Kẻ đẹp trai nhất chính là ta
Dung nham ngẫm kĩ cũng mặn mà
Hok biết ba trăm năm lẻ nữa
Thế gian ai có đẹp hơn ta

Há Há Há :)) :)) :))


Quay về “[.NET] Bài viết hướng dẫn”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.1 khách