Cách tạo CAPTCHA bằng Python

Được giới thiệu vào đầu những năm 2000, CAPTCHA đã gây khó chịu cho người dùng trong nhiều thập kỷ nay. Từ việc tìm kiếm hình ảnh của một chiếc xe buýt đến nhập một chuỗi chữ cái kỳ lạ hoặc giải các bài toán, có nhiều cách mà các trang web yêu cầu bạn chứng minh bạn không phải là robot.

Nhưng bạn đã bao giờ tự hỏi CAPTCHA hoạt động như thế nào và tại sao các trang web buộc bạn phải giải quyết chúng chưa? Để tìm câu trả lời, mời bạn đọc tham khảo bài viết: CAPTCHA là gì? Có những dạng CAPTCHA nào?

Bạn có thể tạo biểu mẫu xác thực CAPTCHA bằng HTML, CSSJS cũng như sử dụng mô-đun CAPTCHA Python. Trong phạm vi bài viết hôm nay, Quantrimang.com sẽ cùng bạn tìm hiểu cách tạo CAPTCHA bằng Python.

Mô-đun CAPTCHA Python

Python đi kèm với một mô-đun tuyệt vời được gọi là CAPTCHA giúp bạn tạo CAPTCHA hình ảnh và âm thanh dựa trên văn bản trong giây lát. Mặc dù mô-đun cung cấp kiểu phông chữ và giọng nói có sẵn, bạn có thể sử dụng dữ liệu giọng nói và phông chữ của mình để tùy chỉnh CAPTCHA hơn nữa.

Để cài đặt mô-đun CAPTCHA trong môi trường Python, hãy mở cửa sổ Terminal và nhập:

pip install captcha

Cách tạo CAPTCHA hình ảnh dựa trên văn bản bằng Python

Toàn bộ mã nguồn để tạo CAPTCHA hình ảnh và âm thanh dựa trên văn bản tùy chỉnh có sẵn trong kho lưu trữ GitHub này.

Bạn có thể làm theo các bước sau để tạo CAPTCHA hình ảnh dựa trên văn bản bằng Python:

1. Nhập mô-đun ImageCaptcha nằm trong captcha.image.

# importing the required libraries
from captcha.image import ImageCaptcha

2. Chỉ định chiều rộng và chiều cao tùy chỉnh cho CAPTCHA và tạo một phiên bản của nó.

# specify dimensions
image = ImageCaptcha(width = 300, height = 100)

3. Lấy một chuỗi ký tự làm dữ liệu nhập của người dùng bằng cách sử dụng hàm input() để chuyển đổi nó thành định dạng CAPTCHA dựa trên văn bản.

# enter the text to create its captcha
captcha_text = input("Please enter text: ")

4. Chuyển văn bản bạn nhận được từ user vào image.generate() để tạo CAPTCHA.

# generate the text-based captcha
data = image.generate(captcha_text)

5. Chuyển văn bản của CAPTCHA và tên file hình ảnh cùng với phần mở rộng của nó vào image.write() để lưu CAPTCHA hình ảnh đã tạo.

# save the captcha image file
image.write(captcha_text, (captcha_text) + ".png")

Đầu ra của CAPTCHA hình ảnh dựa trên văn bản sử dụng Python

Một trong những tính năng tốt nhất của mô-đun này là nó tạo ra cùng một văn bản với các màu sắc, kiểu dáng và độ lệch khác nhau. Đây là một vài ví dụ được tạo ra.

Ví dụ 1

Đây là một thiết kế hấp dẫn khác được tạo ra thông qua cùng một chương trình.

Ví dụ 2

Cách tạo CAPTCHA âm thanh bằng Python

Làm theo các bước sau để tạo CAPTCHA âm thanh bằng Python:

1. Nhập mô-đun AudioCaptcha từ captcha.audio.

# importing the required libraries
from captcha.audio import AudioCaptcha

2. Tạo một phiên bản của AudioCaptcha().

# creating an audio instance
audio = AudioCaptcha()

3. Lấy các chữ số làm đầu vào cho user bằng cách sử dụng hàm input() để tạo CAPTCHA âm thanh của nó.

# audio captcha number, eg: 32135
captcha_text = input("Please enter number: ")

4. Chuyển văn bản bạn nhận được từ user tới audio.generate() để tạo CAPTCHA.

# generate the audio-based captcha
audio_data = audio.generate(captcha_text)

5. Chuyển văn bản của CAPTCHA và tên file âm thanh cùng với phần mở rộng của nó vào audio.write() để lưu CAPTCHA âm thanh đã tạo.

# save the audio file
audio.write(captcha_text, "audio"+captcha_text+'.wav')

Nếu bạn nhập các số 970322, chương trình CAPTCHA âm thanh này sẽ tạo ra file audio970322.wav nói các chữ số theo thứ tự kèm theo một loạt tiếng ồn xung quanh.

Chức năng chính của CAPTCHA là ngăn chặn thư rác và việc lạm dụng bởi bot trên một trang web. Chúng giúp duy trì độ chính xác của các cuộc thăm dò trực tuyến bằng cách ngăn không cho bot đưa tràn lan vào các phản hồi tiêu cực. Chúng hoạt động như một lớp bảo vệ chống lại các cuộc tấn công brute force và hạn chế số lần người dùng cố gắng đăng nhập vào một trang web.

CAPTCHA cũng có thể giúp ngăn chặn những nhận xét tự động và có thể giúp bảo mật các cổng thanh toán với những khó khăn cần giải quyết.

Thứ Ba, 18/10/2022 15:50
51 👨 941
0 Bình luận
Sắp xếp theo
    ❖ Python