Muối mật khẩu trong php là gì?
Trong mật mã, muối là dữ liệu ngẫu nhiên được sử dụng làm đầu vào bổ sung cho hàm một chiều băm dữ liệu, mật khẩu hoặc cụm mật khẩu. [1] Muối được sử dụng để bảo vệ mật khẩu trong kho lưu trữ. Trước đây, chỉ đầu ra từ một lệnh gọi hàm băm mật mã trên mật khẩu được lưu trữ trên hệ thống, nhưng theo thời gian, các biện pháp bảo vệ bổ sung đã được phát triển để bảo vệ chống lại các mật khẩu trùng lặp hoặc phổ biến có thể nhận dạng được (vì hàm băm của chúng giống hệt nhau). [2] Muối là một trong những biện pháp bảo vệ như vậy Show Một loại muối mới được tạo ngẫu nhiên cho mỗi mật khẩu. Thông thường, muối và mật khẩu (hoặc phiên bản của nó sau khi kéo dài khóa) được nối và đưa vào hàm băm mật mã và giá trị băm đầu ra (chứ không phải mật khẩu gốc) được lưu trữ cùng với muối trong cơ sở dữ liệu. Băm cho phép xác thực sau này mà không cần giữ lại và do đó có nguy cơ bị lộ mật khẩu văn bản gốc nếu kho lưu trữ dữ liệu xác thực bị xâm phạm. Các muối không cần phải được mã hóa hoặc lưu trữ riêng biệt với mật khẩu được băm, bởi vì ngay cả khi kẻ tấn công có quyền truy cập vào cơ sở dữ liệu với các giá trị băm và muối, thì việc sử dụng đúng các muối nói trên sẽ cản trở các cuộc tấn công thông thường. [3] Muối bảo vệ chống lại các cuộc tấn công sử dụng các bảng được tính toán trước (e. g. bảng cầu vồng),[4] vì chúng có thể làm cho kích thước của bảng cần thiết cho một cuộc tấn công thành công cực kỳ lớn mà không gây gánh nặng cho người dùng. [5] Vì các loại muối khác nhau nên chúng cũng bảo vệ yếu (e. g. mật khẩu thường được sử dụng, được sử dụng lại), vì các hàm băm muối khác nhau được tạo cho các phiên bản khác nhau của cùng một mật khẩu. [3] Muối mật mã được sử dụng rộng rãi trong nhiều hệ thống máy tính hiện đại, từ thông tin đăng nhập hệ thống Unix đến bảo mật Internet Các muối có liên quan chặt chẽ với khái niệm nonce mật mã Có thể bạn quan tâmVí dụ sử dụng[sửa]Đây là một ví dụ không đầy đủ về giá trị muối để lưu trữ mật khẩu. Bảng đầu tiên này có hai kết hợp tên người dùng và mật khẩu. Mật khẩu không được lưu trữ Tên người dùngMật khẩuuser1 password123 user2 password123 Giá trị muối được tạo ngẫu nhiên và có thể có độ dài bất kỳ; . Giá trị muối được thêm vào mật khẩu văn bản gốc và sau đó kết quả được băm, được gọi là giá trị băm. Cả giá trị muối và giá trị băm đều được lưu trữ Tên người dùng Giá trị muốiChuỗi được băm Giá trị băm = SHA256 (Mật khẩu + Giá trị muối)user1 D;%yL9TS:5PalS/d password123D;%yL9TS:5PalS/d 9C9B913EB1B6254F4737CE947EFD16F16E916F9D6EE5C1102A2002E48D4C88BD user2 )<,-* password123 0password123 1Như bảng trên minh họa, các giá trị muối khác nhau sẽ tạo ra các giá trị băm hoàn toàn khác nhau, ngay cả khi mật khẩu văn bản gốc hoàn toàn giống nhau. Ngoài ra, các cuộc tấn công từ điển được giảm thiểu ở một mức độ nào đó vì kẻ tấn công thực tế không thể tính toán trước các giá trị băm. Tuy nhiên, một loại muối không thể bảo vệ các mật khẩu phổ biến hoặc dễ đoán Nếu không có muối, giá trị băm sẽ giống nhau đối với tất cả người dùng có mật khẩu nhất định, giúp tin tặc dễ dàng đoán mật khẩu từ giá trị băm hơn UsernameString được băm Giá trị băm = SHA256____0password123 3password123 4user2 password123 3password123 4Những lỗi thường gặp[sửa]Tái sử dụng muối[sửa]Sử dụng cùng một loại muối cho tất cả các mật khẩu là nguy hiểm vì một bảng được tính toán trước chỉ tính toán muối sẽ khiến muối trở nên vô dụng Việc tạo các bảng được tính toán trước cho cơ sở dữ liệu với các muối duy nhất cho mỗi mật khẩu là không khả thi do chi phí tính toán để làm như vậy. Tuy nhiên, nếu một loại muối thông thường được sử dụng cho tất cả các mục, thì việc tạo một bảng như vậy (có tính đến muối) thì sẽ trở thành một cuộc tấn công khả thi và có thể thành công. [6] Vì việc sử dụng lại muối có thể khiến những người dùng có cùng mật khẩu có cùng một hàm băm, nên việc bẻ khóa một hàm băm có thể dẫn đến các mật khẩu khác cũng bị xâm phạm Muối ngắn[sửa]Nếu một loại muối quá ngắn, kẻ tấn công có thể tính toán trước một bảng gồm mọi loại muối có thể được thêm vào mọi mật khẩu có khả năng. Sử dụng một muối dài đảm bảo một cái bàn như vậy sẽ rất lớn. [7][8] Lợi ích[sửa]Để hiểu sự khác biệt giữa việc bẻ khóa một mật khẩu và một bộ mật khẩu, hãy xem xét một tệp có người dùng và mật khẩu được băm của họ. Nói rằng tập tin không được ướp muối. Sau đó, kẻ tấn công có thể chọn một chuỗi, gọi nó là Các loại muối cũng chống lại việc sử dụng các bảng được tính toán trước để bẻ khóa mật khẩu. [10] Một bảng như vậy có thể chỉ đơn giản là ánh xạ các mật khẩu phổ biến tới giá trị băm của chúng hoặc nó có thể thực hiện điều gì đó phức tạp hơn, chẳng hạn như lưu trữ điểm bắt đầu và điểm kết thúc của một tập hợp các chuỗi băm được tính toán trước. Trong cả hai trường hợp, việc tạo muối có thể chống lại việc sử dụng các bảng được tính toán trước bằng cách kéo dài các giá trị băm và để chúng được rút ra từ các bộ ký tự lớn hơn, khiến cho bảng ít có khả năng bao gồm các giá trị băm kết quả hơn. Cụ thể, một bảng được tính toán trước sẽ cần bao gồm chuỗi Hệ thống mật khẩu bóng tối hiện đại, trong đó hàm băm mật khẩu và dữ liệu bảo mật khác được lưu trữ trong một tệp không công khai, phần nào giảm thiểu những lo ngại này. Tuy nhiên, chúng vẫn có liên quan trong cài đặt nhiều máy chủ sử dụng hệ thống quản lý mật khẩu tập trung để đẩy mật khẩu hoặc hàm băm mật khẩu vào nhiều hệ thống. Trong các cài đặt như vậy, tài khoản gốc trên mỗi hệ thống riêng lẻ có thể được coi là kém tin cậy hơn so với quản trị viên của hệ thống mật khẩu tập trung, do đó, vẫn đáng để đảm bảo rằng tính bảo mật của thuật toán băm mật khẩu, bao gồm cả việc tạo các giá trị muối duy nhất, là . [cần dẫn nguồn] Một lợi ích khác (kém hơn) của muối như sau. hai người dùng có thể chọn cùng một chuỗi làm mật khẩu của họ. Nếu không có muối, mật khẩu này sẽ được lưu dưới dạng chuỗi băm giống nhau trong tệp mật khẩu. Điều này sẽ tiết lộ thực tế là hai tài khoản có cùng một mật khẩu, cho phép bất kỳ ai biết một trong các mật khẩu của tài khoản này đều có thể truy cập vào tài khoản kia. Bằng cách tạo mật khẩu bằng hai ký tự ngẫu nhiên, ngay cả khi hai tài khoản sử dụng cùng một mật khẩu, không ai có thể phát hiện ra điều này chỉ bằng cách đọc các giá trị băm. Việc tạo muối cũng khiến việc xác định xem một người có sử dụng cùng một mật khẩu cho nhiều hệ thống trở nên cực kỳ khó khăn hay không. [11] Triển khai Unix[sửa]Những năm 1970–1980[sửa | sửa mã nguồn]Các phiên bản trước của Unix đã sử dụng tệp mật khẩu Hệ thống mật khẩu bóng tối được sử dụng để hạn chế quyền truy cập vào hàm băm và muối. Muối là tám ký tự, hàm băm là 86 ký tự và độ dài mật khẩu là không giới hạn Ứng dụng web thường lưu trữ trong cơ sở dữ liệu giá trị băm của mật khẩu người dùng. Nếu không có muối, một cuộc tấn công SQL injection thành công có thể mang lại mật khẩu dễ bẻ khóa. Vì nhiều người dùng sử dụng lại mật khẩu cho nhiều trang web nên việc sử dụng muối là một thành phần quan trọng trong bảo mật ứng dụng web tổng thể. [14] Một số tài liệu tham khảo bổ sung về việc sử dụng muối để bảo mật mật khẩu băm trong các ngôn ngữ hoặc thư viện cụ thể (PHP, the. NET, v.v. ) có thể được tìm thấy trong phần liên kết ngoài bên dưới Muối mật khẩu có nghĩa là gì?Tạo muối mật khẩu là một kỹ thuật để bảo vệ mật khẩu được lưu trữ trong cơ sở dữ liệu bằng cách thêm một chuỗi gồm 32 ký tự trở lên rồi băm chúng . Salting ngăn chặn tin tặc xâm phạm môi trường doanh nghiệp từ kỹ thuật đảo ngược mật khẩu và đánh cắp chúng từ cơ sở dữ liệu.
Mật khẩu muối và băm là gì?Băm là quy trình một chiều giúp chuyển đổi mật khẩu thành bản mã bằng thuật toán băm. Không thể giải mã mật khẩu đã băm nhưng tin tặc có thể cố gắng đảo ngược mật khẩu đó. Tạo muối mật khẩu thêm các ký tự ngẫu nhiên trước hoặc sau mật khẩu trước khi băm để làm xáo trộn mật khẩu thực .
Mật khẩu muối và hạt tiêu là gì?Hạt tiêu mật khẩu là gì? . Nó có thể được coi là muối thứ hai — một đầu vào khác để thay đổi hoàn toàn kết quả băm. Tuy nhiên, không giống như một loại muối, nó không được lưu trữ trong cơ sở dữ liệu cùng với các giá trị băm. A pepper is a secret value added to a password before hashing. It can be considered a second salt — another input to change the hash outcome completely. Yet, unlike a salt, it's not stored in the database along with the hashes.
Muối tốt cho mật khẩu là gì?Đề xuất cổ điển về muối để băm mật khẩu là. Một giá trị ngẫu nhiên từ 128 bit trở lên ; . e. không sử dụng lại cùng một loại muối, hãy tạo một loại muối mới cho mỗi mật khẩu mới); |
Bài Viết Liên Quan
Hướng dẫn can we have 2 keys in dictionary python? - chúng ta có thể có 2 khóa trong từ điển python không?
Trong hướng dẫn Python này, chúng tôi sẽ thảo luận về nhiều khóa từ điển Python. Ở đây chúng tôi cũng sẽ bao gồm các ví dụ dưới đây:Python dictionary ...
Hướng dẫn is macbook pro m1 good for python programming? - macbook pro m1 có tốt cho lập trình python không?
Tôi đã tìm ra một giải pháp giải pháp - Cách cài đặt Numpy trên M1 Max, với hiệu suất tăng tốc nhất (Apples Veclib)? Đây là câu trả lời kể từ ngày 6 tháng ...
Hướng dẫn is javascript a glue language? - javascript có phải là ngôn ngữ keo không?
Ngôn ngữ keo được sử dụng ở khắp mọi nơi. Mặc dù bạn có thể xác định là Pythonista, hoặc Lua Fiend, hoặc một nhà phát triển C ++, tất cả chúng ta cuối ...
Hướng dẫn python typing none - python gõ không có
Trong Python, không có vô giá trị từ khóa, nhưng có Không có. Không có giá trị trả về của hàm doesn’t return anything. None is often used to represent the absence of a ...
Hướng dẫn python removesuffix - python removeuffix
Xem thảo luậnCải thiện bài viếtLưu bài viếtĐọcBàn luậnXem thảo luậnCải thiện bài viếtLưu bài viếtĐọcstr.removesuffix(suffix, /) function removes the suffix ...
Chụp màn hình samsung j6 2023
. Camera kép chụp ảnh xóa phông theo xu thế. Thiết kế của Samsung Galaxy J6 có tạo được ấn tượng?. Camera đủ mạnh, dễ dàng sử dụng. Những lý do bạn nên ...
Hướng dẫn web scraping load more button python - web cạo tải thêm nút python
from selenium import webdriver import time driver = ...
Hướng dẫn deletion distance python - xóa khoảng cách python
Tôi đã giải quyết vấn đề này tại Pramp và tôi gặp khó khăn trong việc tìm ra thuật toán cho vấn đề này.Nội phân Chính showShowMã ví dụLàm thế nào để ...
Hướng dẫn can we use return in if statement python? - chúng ta có thể sử dụng lệnh return trong if python không?
Giả sử tôi có một tuyên bố if với if(A > B): return A+1 else: return A-1 0. Từ góc độ hiệu quả, tôi nên sử dụngif(A > B): return A+1 return A-1 hoặcif(A > ...
Hướng dẫn what is late static binding in php for? - liên kết tĩnh trễ trong php để làm gì?
Chính xác thì các ràng buộc tĩnh muộn trong PHP là gì? Mark Amery133K78 Huy hiệu vàng395 Huy hiệu bạc444 Huy hiệu đồng78 gold badges395 silver badges444 bronze badges Đã ...
Hướng dẫn how to fetch data from database in php using mysqli - làm thế nào để tìm nạp dữ liệu từ cơ sở dữ liệu trong php bằng cách sử dụng mysqli
❮ Php mysqli tham khảoVí dụ - Phong cách định hướng đối tượngTìm nạp các hàng từ một kết quả đã đặt:?> Nhìn vào ví dụ về phong cách thủ tục ở phía ...
Hướng dẫn input two numbers and display the largest number in python - nhập hai số và hiển thị số lớn nhất trong python
Chương trình Python để tìm thấy lớn nhất trong số hai sốChúng tôi có nhiều cách tiếp cận để có được con số lớn nhất trong số hai số, và ở đây chúng ...
Xe máy lấn tuyến phạt bao nhiêu tiền 2023
Trả lời: Vụ Pháp chế - Bộ GTVT trả lời như sau: Theo quy định tại Điều 24 Nghị định số 34/2010/NĐ-CP ngày 02/4/2010 của Chính phủ quy định xử phạt vi ...
Hướng dẫn node js change html content - nút js thay đổi nội dung html
Bạn không thể sửa đổi từ phía nút theo cách mà tôi nghĩ rằng bạn đang cố gắng làm. Bạn có thể gửi lại phản hồi cho phía máy khách và trên phản hồi ...
Hướng dẫn dùng numeral definition python - sử dụng python định nghĩa số
Kiểu dữ liệu Number trong Python lưu trữ các giá trị số. Chúng là các kiểu dữ liệu immutable, hay là kiểu dữ liệu không thay đổi, nghĩa là các thay đổi về ...
Hướng dẫn php mysqli export to csv - php mysqli xuất sang csv
Tôi đã cố gắng trong nhiều ngày để xuất từ một truy vấn một số giá trị trong .csv với mysqli, nhưng tôi có vấn đề khi xuất, mọi thứ đang xuất ...
Hướng dẫn can you have logic in css? - bạn có thể có logic trong css?
Gói lênCSS rất có khả năng làm thay đổi các hệ thống bố trí thông minh và phản ứng. Các cấu trúc và thuật toán kiểm soát của nó có thể hơi kỳ lạ so ...
Hướng dẫn how check string is english or not in php? - làm thế nào để kiểm tra chuỗi là tiếng anh hay không trong php?
Trong JS tôi đã sử dụng mã này:if(string.match(/[^A-Za-z0-9]+/)) Nhưng tôi không biết, làm thế nào để làm điều đó trong PHP. Benmorel32,8K48 Huy hiệu vàng173 Huy hiệu ...
Hướng dẫn dùng ord meaning python
Nội dung chínhNội dung chính ShowSắp xếp dictionary python theo thứ tự tăng dần | hàm sorted()Sắp xếp theo key | phương thức keys()Sắp xếp theo value | phương thức ...
Hướng dẫn date of birth validation in php - xác thực ngày sinh trong php
Demo: Ví dụ làm việc.Php ngày của tập lệnh xác minh sinhĐịnh dạng ngày xác thựcKiểm tra giới hạn tuổi bằng cách so sánh ngàyTính toán tuổi của bạnKiểm ...