Cách tạo trình tạo mật khẩu mạnh

Tác giả Security+, T.Hai 04, 2024, 01:15:10 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Cách tạo trình tạo mật khẩu mạnh


Bạn có tin tưởng mật khẩu do phần mềm bên thứ ba tạo là thực sự ngẫu nhiên và an toàn không? Đây là cách tạo trình tạo ngẫu nhiên của riêng bạn cho mật khẩu không thể bẻ khóa. Bạn biết phải làm gì rồi đấy. Đừng sử dụng những mật khẩu đơn giản như ngày sinh nhật của bạn hoặc tên chú cự đà cưng của bạn. Đừng sử dụng cùng một mật khẩu ở mọi nơi. Thay vào đó, hãy tạo một mật khẩu dài, ngẫu nhiên, duy nhất cho mỗi trang web. Đừng thử cách này nếu không có trợ giúp—hãy tải trình quản lý mật khẩu. Sau khi bạn đã lưu trữ an toàn tất cả mật khẩu của mình trong trình quản lý, hãy thay thế bất kỳ mật khẩu yếu hoặc mật khẩu lừa đảo nào bằng mật khẩu duy nhất mà không ai có thể đoán được—và thậm chí cả bạn cũng không thể nhớ được. Một hacker có thể đoán một mật khẩu đơn giản như Fido hoặc bẻ khóa nó bằng vũ lực, nhưng không ai có thể đoán được thứ gì đó như P5$e?KqA+unh$RhPTlp1 và việc ép buộc nó sẽ mất rất nhiều thời gian.

Câu hỏi là, bạn lấy những mật khẩu ngẫu nhiên đó ở đâu? Gần như mọi trình quản lý mật khẩu đều có trình tạo mật khẩu ngẫu nhiên của riêng nó, một số trong đó tốt hơn những trình khác. Tuy nhiên, trong hầu hết các trường hợp, chương trình sử dụng thuật toán giả ngẫu nhiên. Về lý thuyết, một hacker biết thuật toán và có quyền truy cập vào một trong các mật khẩu đã tạo của bạn có thể sao chép tất cả mật khẩu được tạo tiếp theo (mặc dù điều đó sẽ rất khó). Nếu đủ hoang tưởng, bạn có thể muốn tạo trình tạo mật khẩu ngẫu nhiên của riêng mình. Chúng tôi có thể giúp bạn xây dựng nó bằng Microsoft Excel.

Không thể phủ nhận rằng một số nhiệm vụ bảo mật nằm ngoài phạm vi có thể tự thực hiện được. Ví dụ: bạn không có khả năng xây dựng mạng lưới máy chủ VPN trải rộng trên toàn cầu của riêng mình. Bạn sẽ không tạo ra một tiện ích chống virus thủ công. Nhưng việc xây dựng dự án nhỏ này không đòi hỏi kiến thức nâng cao mà chỉ cần khả năng làm theo hướng dẫn. Nó không sử dụng macro hoặc những thứ cầu kỳ, chỉ là các hàm Excel thông thường, mặc dù một số hàm bạn có thể chưa từng thấy trước đây. Lưu ý rằng dự án này nhất thiết phải dựa vào thuật toán giả ngẫu nhiên của Excel. Sự khác biệt ở đây là kẻ xấu có thể nghiên cứu trình tạo mật khẩu được nhúng trong bất kỳ trình quản lý mật khẩu công khai nào, trong khi chúng không có quyền truy cập vào trình quản lý mật khẩu do bạn tạo tại nhà.

Một cảnh báo. Bạn cần có phiên bản Excel hiện tại để thực hiện dự án này. Office 2019 trở lên sẽ thực hiện công việc này, cũng như Office 365 mới nhất. Nếu bạn không chắc chắn, Microsoft sẽ giải thích cách tải phiên bản mới nhất.

1. Tạo giàn giáo tạo mật khẩu

Trước tiên, hãy tạo khung sẽ đóng khung trình tạo mật khẩu của chúng ta, nghĩa là các nhãn và các thành phần tĩnh. Vui lòng đặt mọi thứ vào chính xác các ô như tôi mô tả bên dưới để các công thức hoạt động. Sau khi nó hoạt động, bạn có thể điều chỉnh nó để biến nó thành của riêng bạn.


Trong ô B1, nhập "Trình tạo mật khẩu ngẫu nhiên" hoặc bất kỳ tiêu đề nào bạn muốn cho dự án của mình. Bắt đầu từ ô B3 đi xuống, nhập các nhãn "Độ dài", "Chữ hoa", "Chữ thường", "Chữ số" và "Ký tự đặc biệt". Bỏ qua ô B8, nhập "Nhấn F9 để tạo lại" trong B9 và "MẬT KHẨU" trong B10. Nó sẽ trông giống như hình ảnh trên.

Trong ô C3, nhập 20 hoặc độ dài mật khẩu mặc định ưa thích của bạn. Nhập "Có" vào bốn ô tiếp theo bên dưới nó. Bây giờ, nhập toàn bộ bảng chữ cái viết hoa vào ô D4 và toàn bộ bảng chữ cái viết thường vào D5. Nhập 10 chữ số vào D6 và bất kỳ ký tự đặc biệt nào bạn muốn sử dụng trong D7. Mẹo chuyên nghiệp: Đặt số 0 cuối cùng, không phải đầu tiên, trong danh sách các chữ số, nếu không Excel sẽ loại bỏ nó. Giàn giáo hoàn thành sẽ trông giống như thế này:


2. Thêm công thức tạo mật khẩu

Với khung đã sẵn sàng, đã đến lúc thêm các công thức. Để bắt đầu, chúng ta cần xây dựng một chuỗi văn bản bao gồm tất cả các ký tự mà chúng ta đã chọn sử dụng. Công thức để làm điều đó có vẻ hơi phức tạp nhưng thực ra nó chỉ dài thôi. Nhập công thức này vào ô D8:

Mã nguồn [Chọn]
=IF(C4="Yes",D4,"") &IF(C5="Yes",D5,"") &IF(C6="Yes",D6,"") &IF(C7="Yes",D7,"")
Toán tử & dán các chuỗi văn bản lại với nhau. Ý nghĩa của công thức này là, đối với mỗi bộ ký tự trong số bốn bộ ký tự, nếu ô liền kề chứa Có, hãy bao gồm bộ ký tự đó. Nhưng nếu ô đó chứa bất cứ thứ gì ngoại trừ Có (bất kể chữ hoa hay chữ thường), thì không bao gồm nó. Thử ngay bây giờ; thay đổi một số ô Có thành Không, Không hoặc Meh. Chuỗi ký tự có sẵn thay đổi để phù hợp với những gì bạn đã làm.

3. Sử dụng một số phép thuật Excel

Khi tôi tạo bảng tính này lần đầu tiên, tôi đã sử dụng một kỹ thuật đơn giản để tạo mật khẩu ngẫu nhiên. Tôi bắt đầu với một công thức trả về một ký tự ngẫu nhiên được rút ra từ chuỗi đó trong ô D8:

Mã nguồn [Chọn]
=MID(D8,RANDBETWEEN(1,LEN(D8)),1)
Điều này yêu cầu Excel tạo một số ngẫu nhiên từ một đến độ dài của chuỗi và trả về một ký tự tại vị trí đó. Tôi dán 40 lần lặp lại công thức đó lại với nhau để tạo thành một chuỗi gồm 40 ký tự ngẫu nhiên. Và tôi đã sử dụng hàm LEFT() để cắt kết quả xuống độ dài mong muốn. Nó không đẹp. Công thức cuối cùng nặng 1.329 ký tự!

Nhờ một chút phép thuật Excel mà tôi đã học được từ đó, công thức tạo mật khẩu ngẫu nhiên hiện tại của tôi nhỏ hơn nhiều, chỉ 78 ký tự:

Mã nguồn [Chọn]
=TEXTJOIN("",TRUE,MID(D8,RANDBETWEEN(SIGN(ROW(INDIRECT("1:"&C3))),LEN(D8)),1))
Nếu bạn chỉ muốn sử dụng công thức này mà không cần lo lắng về cách thức hoạt động của nó thì không vấn đề gì! Sao chép nó vào ô C10. Bạn sẽ thấy một mật khẩu ngẫu nhiên, mật khẩu này sẽ thay đổi khi bạn nhấn F9 để tính toán lại, giống như một phép thuật.

4. Tìm hiểu một số phép thuật Excel

Bạn nói gì vậy? Bạn có muốn biết tại sao công thức điên rồ đó lại có tác dụng không? Tôi có thể giúp với điều đó. Nhưng trước hết là một lời thú nhận. Tôi không biết liệu đây có phải là cách tốt nhất để làm những gì tôi đã làm hay không. Tôi chỉ mày mò cho đến khi tôi làm được. Có thể có một giải pháp thanh lịch hơn.

Trước hết, hãy gặp hàm TEXTJOIN(). Loại đá quý ít được biết đến này lấy một mảng giá trị làm đầu vào và kết hợp chúng. Đây là một bổ sung khá gần đây, yêu cầu ít nhất Office 2019 hoặc Microsoft 365. Có hai đầu vào khác trước mảng: một dấu phân cách để phân tách các giá trị và một lựa chọn đúng/sai cho biết có nên bỏ qua các giá trị trống hay không. Thử nó. Trong trang tính mới, nhập một số tên vào cột A, hàng từ 1 đến 5. Nhập công thức này vào ô B1:

Mã nguồn [Chọn]
=TEXTJOIN("***", TRUE, A1:A5)
Ô B1 hiển thị tên từ A1 đến A5 dưới dạng một chuỗi văn bản, có ba dấu sao ở giữa mỗi chuỗi. Đây là một ví dụ khác.

Mã nguồn [Chọn]
=TEXTJOIN(" and ",TRUE,ROW(A1:A9))
Trước khi sao chép hàm này vào một bảng tính, bạn có đoán được nó làm gì không? A1:A9 là một mảng và hàm ROW() trả về một mảng kết quả, các số từ 1 đến 9. TEXTJOIN gắn chúng lại với nhau, với " và " ở giữa. Bạn có thể sử dụng kỹ thuật này để xử lý danh sách số theo những cách khác.


Tuy nhiên, chúng ta không cần một danh sách các con số. Chúng ta chỉ cần Excel lấy ra một ký tự ngẫu nhiên với số lần nhất định. Một lần nữa, công thức này lấy ra một ký tự ngẫu nhiên:

Mã nguồn [Chọn]
=MID(D8,RANDBETWEEN(1,LEN(D8)),1)
Để Excel xử lý hàm đó, chẳng hạn như tám lần, chúng ta cần thay thế chữ số 1 xác định đầu dưới của phạm vi ngẫu nhiên bằng công thức trả về một mảng gồm 8 số 1. Hàm SIGN() trả về 1 cho bất kỳ số dương nào, vì vậy chúng ta sẽ sử dụng hàm đó để thay đổi mảng số tăng dần thành mảng 1. Sau đó chúng tôi sử dụng TEXTJOIN() để kết hợp các kết quả. Công thức này trả về mật khẩu tám ký tự được tạo từ các ký tự ngẫu nhiên từ chuỗi tìm thấy trong D8:

Mã nguồn [Chọn]
=TEXTJOIN("",TRUE,MID(D8,RANDBETWEEN(SIGN(ROW(1:8)),LEN(D8)),1))
Hầu như ở đó! Những gì chúng ta cần thay vì phạm vi 1:8 là phạm vi từ 1 đến bất kỳ giá trị nào trong C3, độ dài mong muốn. Hàm INDIRECT() tiện dụng sẽ thực hiện công việc này. Nó lấy một chuỗi văn bản mô tả một ô hoặc vị trí và trả về ô hoặc vị trí đó. Như vậy là công thức đã hoàn tất. Lại một lân nưa:

Mã nguồn [Chọn]
=TEXTJOIN("",TRUE,MID(D8,RANDBETWEEN(SIGN(ROW(INDIRECT("1:"&C3))),LEN(D8)),1))
5. Tinh chỉnh trình tạo mật khẩu của bạn

Trình tạo mật khẩu đã hoạt động hoàn toàn vào thời điểm này. Nếu bạn hài lòng với nó thì tuyệt vời: Bạn đã làm được rồi! Nhưng nếu quan tâm, bạn có thể cải thiện giao diện và chức năng của nó bằng nhiều cách. Để bắt đầu, nhấp chuột phải vào D ở đầu cột D và chọn Ẩn từ menu. Giờ đây, bạn không cần phải xem danh sách bộ ký tự và các phép tính ở giữa.

Thông thường, bạn muốn đặt giới hạn trên và dưới cho độ dài trong trình tạo mật khẩu. Ngoài ra, nếu bạn nhập bất cứ thứ gì ngoại trừ số vào trường Độ dài thì công thức sẽ không thành công. Chúng ta có thể khắc phục điều đó. Bấm vào ô C3, nơi xác định độ dài, bấm vào Dữ liệu trong ruy-băng, bấm để mở Công cụ dữ liệu và chọn Xác thực dữ liệu.


Trong cửa sổ bật lên hiện ra, hãy nhấp vào thanh kéo xuống bên dưới Cho phép và chọn Số nguyên. Bỏ chọn hộp trống Bỏ qua và đặt Tối thiểu thành 8 và Tối đa thành 64. Khi nó trông giống như ảnh chụp màn hình ở đây, hãy nhấp vào tab tiếp theo, Nhập tin nhắn. Làm Thông báo đầu vào, nhập "Nhập độ dài từ 8 đến 64". Sao chép văn bản đó vào khay nhớ tạm và dán vào trường Thông báo lỗi của tab Cảnh báo lỗi, sau đó nhấp vào OK. Bây giờ, khi bạn bấm vào ô Độ dài, bạn sẽ nhận được lời nhắc nhập độ dài hợp lệ và nếu mắc lỗi, bạn sẽ nhận được thông báo lỗi đầy thông tin.

Sẵn sàng cho một điều chỉnh cuối cùng? Bấm vào ô C4, ô ngay bên phải nhãn "Chữ in hoa". Một lần nữa, nhấp vào Dữ liệu trong ruy-băng và chọn Xác thực dữ liệu. Chọn Danh sách từ trình đơn thả xuống, bỏ chọn Bỏ qua chỗ trống, nhấp vào hộp Nguồn và nhập "Có, Không" không có dấu ngoặc kép. Trên tab Tin nhắn đầu vào, bỏ chọn hộp Hiển thị tin nhắn đầu vào ở trên cùng. Trên trang Cảnh báo Lỗi, nhập "Có hoặc Không" làm thông báo lỗi. Nhấn OK để hoàn tất. Sao chép ô này vào ba ô bên dưới nó.

Đó là nó! Bây giờ, bốn ô đó chỉ chấp nhận Có hoặc Không làm giá trị. Tốt hơn nữa, mỗi giá trị hiện đã có được danh sách thả xuống cho phép bạn chọn một trong các giá trị đó.

Tại thời điểm này, bạn có thể muốn sáng tạo và thêm định dạng để làm cho trình tạo mật khẩu của mình trông bớt công nghiệp hơn. Chọn phông chữ bạn thích, thêm màu sắc và điều chỉnh cho đến khi công cụ mới trông đẹp mắt với bạn.


Cuối cùng, hãy khóa nó lại để bạn không vô tình phá hủy công thức bằng cách nhập dữ liệu vào sai ô. Đánh dấu các ô từ C3 đến C7 (đó là ô có độ dài cộng với bốn ô có/không), nhấp chuột phải và chọn Định dạng Ô. Nhấp vào tab Bảo vệ và bỏ chọn hộp kiểm có tên Đã khóa, sau đó nhấp vào OK. Bấm vào Xem lại trong dải băng và bấm vào Trang tính Bảo vệ. Chỉ cần nhấp vào OK để chấp nhận cài đặt trong hộp thoại kết quả; bạn không cố gắng bảo vệ trang tính bằng mật khẩu mà chỉ để bảo vệ nó khỏi những ngón tay dò dẫm. Lưu kết quả vẻ vang!

6. Tạo Trình tạo mật khẩu trong Google Trang tính

Tôi là một chuyên gia Excel và tôi đã như vậy từ trước khi Google Trang tính tồn tại. Thậm chí có thể kể từ trước khi Google tồn tại! Nhưng tôi biết nhiều người tin dùng Google Trang tính nên tôi đã kích hoạt nó để đảm bảo rằng nó hỗ trợ dự án này.

Tôi đã làm theo hướng dẫn của riêng mình để xây dựng trình tạo mật khẩu trong Trang tính và nhận thấy mọi thứ đều hoạt động rất tốt, đúng với công thức hiển thị một ký tự ngẫu nhiên. Mọi thứ đều hoạt động, nhưng nhấn F9 không làm mới được ký tự ngẫu nhiên mới. Tư vấn Google, tôi thấy rằng để buộc làm mới, bạn phải nhấn F5, từ đó cập nhật toàn bộ trang hoặc thay đổi giá trị của bất kỳ ô nào. Thật khó xử nhưng có thể làm được. Tôi đã thay đổi lời nhắc thành "Nhấn F5 để tạo lại".

Tôi đã gặp phải một điểm khác biệt khác khi sao chép chức năng cực kỳ quan trọng thực sự tạo ra mật khẩu. Nó không hoạt động. Nó chỉ trả về một ký tự ngẫu nhiên. Để Trang tính xử lý các phép tính mảng liên quan, tôi phải chuyển rõ ràng công thức hiện có sang hàm ArrayFormula(). Khi đó, trong Trang tính, công thức tạo mật khẩu ngẫu nhiên sẽ trở thành:

Mã nguồn [Chọn]
=ArrayFormula(TEXTJOIN("",TRUE,MID(D8,RANDBETWEEN(SIGN(ROW(INDIRECT("1:"&C3))),LEN(D8)),1)))

Tôi sẽ không đi vào chi tiết ở đây nhưng tôi đã cố gắng tạo lại các quy tắc xác thực dữ liệu và ẩn các cột không mong muốn. Nếu bạn đang sử dụng Trang tính thay vì Excel, dự án này vẫn có thể phù hợp với bạn.

7. Bạn làm được rồi!

Cho dù bạn chấp nhận phiên bản cơ bản của bảng tính này hay tiếp tục áp dụng các chỉnh sửa ưa thích, giờ đây bạn đã có một trình tạo mật khẩu do chính bạn viết. Đúng, Excel sử dụng trình tạo số giả ngẫu nhiên, nhưng bạn có thể thêm tính ngẫu nhiên của riêng mình bằng cách tung xúc xắc và nhấn F9 nhiều lần trước khi chấp nhận mật khẩu được tạo. Và mặc dù tin tặc có thể tìm cách thiết kế ngược bộ tạo mật khẩu trong một sản phẩm quản lý mật khẩu được hàng triệu người sử dụng, nhưng tiện ích chỉ dùng một lần của bạn lại không được chú ý. Bạn làm được rồi!

Để biết thêm mẹo về mật khẩu, hãy đọc 3 thủ thuật đơn giản để ghi nhớ mật khẩu mạnh.