bkhoang
Senior Member
thì đang nói n là số bit

thì đang nói n là số bit

Thôi ghi là N cho phân biệt vậythì đang nói n là số bit![]()
N là không gian đầu ra của hàm băm(output space).
Đúng r thím, output luôn luôn có chiều dài cố định bất chấp chiều dài input.Sao lại luôn là giá trị cố định bất chấp đầu vào? Chắc thím đang nói nó luôn cho ra output có chiều dài cố định bất chấp độ dài input.
đừng có mà bắt lú nháThôi ghi là N cho phân biệt vậyN là không gian đầu ra của hàm băm(output space).
n = 256, N = 2 ^ 256![]()



Dùng encrypt hay hash lên "password" thì còn phụ thuộc vào yêu cầu và cách mà trường "password" đó được sử dụng nữa chứ bác. Em nghĩ là không có công nghệ nào là hoàn hảo cả. Chỉ là cái nào hợp cho trường hợp nào hơn thôi.bạn lầm rồi, mình chưa thấy công nghệ nào lại đi encrypt password cả
pass "123456" khi bạn encrypt thì sẽ ra "djse989" chẳng hạn, và về mặt khái niệm kỹ thuật thì từ "djse989" sẽ decrypt ra lại thành "123456"
Còn hash thì không có khái niệm giải ngược như vậy đâu nhé, muốn phá thì bạn phải đi "vét cạn", và về mặt lý thuyết thì đây là 1 phương trình có vô số nghiệm, nhưng để tìm ra 1 nghiệm thì là là vô cùng khó
Cốt lõi của nó chính là Hash đó bạn
- Bcrypt tự động thêm một giá trị salt vào mật khẩu trước khi băm để bảo vệ chống lại các cuộc tấn công bằng rainbow table.
fence cho mình hỏi có use-case nào cần dùng đến giá trị gốc của password nhỉ. Mình nghĩ phần lớn các hệ thống bây giờ thì đến người quản trị DB cũng ko biết đc giá trị gốc của password luôn chứ nhỉDùng encrypt hay hash lên "password" thì còn phụ thuộc vào yêu cầu và cách mà trường "password" đó được sử dụng nữa chứ bác. Em nghĩ là không có công nghệ nào là hoàn hảo cả. Chỉ là cái nào hợp cho trường hợp nào hơn thôi.
Nếu cần lấy lại giá trị gốc để sử dụng thì phải sử dụng encrypt chứ dùng hash thì sẽ không đáp ứng được việc dịch ngược. Tất nhiên là trường hợp như vậy là không nhiều.
Mà một khi quyền truy cập vào dữ liệu đã bị chiếm thì dữ liệu được hash hay encrypt cũng đều là miếng mồi thôi. Hash cũng chỉ là mất thời gian hơn để kẻ tấn công ăn được miềng mồi này thôi.

case ví dụ:fence cho mình hỏi có use-case nào cần dùng đến giá trị gốc của password nhỉ. Mình nghĩ phần lớn các hệ thống bây giờ thì đến người quản trị DB cũng ko biết đc giá trị gốc của password luôn chứ nhỉ![]()
Kỳ thực ko hiểu lắm, dưới góc nhìn 1 người bình thường thì băm password ra để hecker khi thấy dữ liệu cuối ko dò ra được raw password đúng không ?Hashing là quá trình chuyển đổi dữ liệu từ dạng gốc thành một giá trị băm cố định. Hashing là quá trình một chiều, nghĩa là không chuyển về dữ liệu gốc từ giá trị băm (Khác với Encrypt có thể đổi ngược).
Với một dữ liệu gốc sẽ tạo ra một giá trị băm nhất định, chính vì vậy khi dùng hash mật khẩu lưu vào database thì hacker có thể dùng rainbow table để dò giá trị băm và tìm được dữ liệu gốc. Vì vậy khi thực hiện hash mật khẩu ta cần thêm Salt ngoài ra còn có Pepper, KDF (Key Derivation Function):.
- Salt
- Salt là một giá trị ngẫu nhiên, được thêm vào mật khẩu trước khi thực hiện băm.
- Salt đảm bảo rằng mỗi mật khẩu, ngay cả giống nhau cũng sẽ cho ra giá trị băm khác nhau.
- Điều này làm cho rainbow table gần như vô dụng vì hacker phải tạo rainbow table riêng cho mỗi giá trị salt với kích thước vô cùng lớn
Mã:async function hashPassword(password) { const salt = await bcrypt.genSalt(saltRounds); const hashedPassword = await bcrypt.hash(password, salt); return hashedPassword; }
- Pepper
- Pepper là một giá trị bí mật, giống như salt, được giữ bí mật và thêm vào mật khẩu trước khi băm.
- Pepper thường lưu vào các biến môi trường trên máy chủ.
Mã:async function hashPassword(password) { const salt = await bcrypt.genSalt(saltRounds); const hashedPassword = await bcrypt.hash(password + pepper, salt); return { salt, hashedPassword }; }
lội 2 page của thớt theo mình hiểu thì trong password đã hash có chứa salt ở trong đó, lấy salt ngược ra hash lại password là compare dc.Kỳ thực ko hiểu lắm, dưới góc nhìn 1 người bình thường thì băm password ra để hecker khi thấy dữ liệu cuối ko dò ra được raw password đúng không ?
Nhưng nếu user đăng nhập với mật mã A => hệ thống cũng thực hiện băm password A ra A1', A2' thì nó biết password của user khớp không kiểu gì ?
bảo mật nó là 1 cái mảng riêng, đây chỉ nói về mã hoá vs hash, đọc nghe ngứa thật, tránh hacker thì rút mẹ dây điện như Quảng nổ là ok nhất ...Ọc, vậy nói tựu chung ra là nó 1 cái unique key, bằng cách nào đó cho ra 1 chuỗi giống nhau 2 kết quả khác nhau.
Chỉ phòng được vụ hacker trộm được DB và ko decode được.
Còn hacker nó mà đã leo quyền trộm được salt, DB thì coi như banh luôn ?
Này thím, đang nói về user view và tôi thắc mắc thật vì tôi ko chuyên ngành này, lội thớt trên 2 cái là thấy tôi nói trước !bảo mật nó là 1 cái mảng riêng, đây chỉ nói về mã hoá vs hash, đọc nghe ngứa thật, tránh hacker thì rút mẹ dây điện như Quảng nổ là ok nhất ...
bàn về mã hoá vs hash mà cứ lỗi hacker vào, tụi mày bị cái gì thế
Ko chuyên ngành thì im, cứ bày đặt hacker này nọ, vào đọc xem kiến thức, gặp mấy thằng như mày chỉ biết hỏi vs hỏi mấy cái vớ vẩn, tụi m bị ngu à, hỏi mấy câu vớ vẩn loãng hết mẹ topic, hack hack cái lol, ngứa thật chứNày thím, đang nói về user view và tôi thắc mắc thật vì tôi ko chuyên ngành này, lội thớt trên 2 cái là thấy tôi nói trước !
Với cả nó cũng chẳng phải gì đặc biệt mà thể hiện ta đây ra vẻ với gì mà ngứa !
Salt sinh ra ngẫu nhiên khi hash bạn à.Ọc, vậy nói tựu chung ra là nó 1 cái unique key, bằng cách nào đó cho ra 1 chuỗi giống nhau 2 kết quả khác nhau.
Chỉ phòng được vụ hacker trộm được DB và ko decode được.
Còn hacker nó mà đã leo quyền trộm được salt, DB thì coi như banh luôn ?
Chào, bạn ngứa thì tự gãi, tôi cũng CNTT và lập trình, vào đây để trao thêm đổi kiến thức mảng chuyên ngành bảo mật, nói chuyện tục thì ignore hộ.Ko chuyên ngành thì im, cứ bày đặt hacker này nọ, vào đọc xem kiến thức, gặp mấy thằng như mày chỉ biết hỏi vs hỏi mấy cái vớ vẩn, tụi m bị ngu à, hỏi mấy câu vớ vẩn loãng hết mẹ topic, hack hack cái lol, ngứa thật chứ
Cảm ơn thím giải ngố giúp, thực sự thì khi làm với DB em cũng cứ gọi hàm MD5 thôi, chứ ko biết cụ thể nó gen sới MD5+ salt rồi lưu DB.Salt sinh ra ngẫu nhiên khi hash bạn à.
mình nghĩ đoạn đó bạn ý giải thích chưa rõ rànglội 2 page của thớt theo mình hiểu thì trong password đã hash có chứa salt ở trong đó, lấy salt ngược ra hash lại password là compare dc.
còn A1' với A2' của fen là 2 user có cùng password nhưng trong db hiển thị khác nhau do khác salt.