Bẻ khóa mã Spotify

Nếu bạn đã sử dụng Spotify, bạn có thể nhận thấy mã bit tiện dụng mà nó có thể tạo ra nó xuất hiện giống như một loạt các thanh có độ cao khác nhau. Nếu bạn giống như [Peter Boone], một mã hóa như vậy sẽ kích thích sự tò mò của bạn, cũng như bạn có thể đặt ra để tìm ra chính xác cách chúng hoạt động.

Spotify cung cấp một bức ảnh bit, khi được quét, mở hầu hết mọi thứ có thể tìm kiếm với Spotify. Một số dòng được tập trung vào logo Spotify với tám độ cao khác nhau, lưu trữ thông tin trong bát phân. Nhiều chương trình mã hóa trực quan mã hóa một số URI (Mã định danh tài nguyên thống nhất) cung cấp một định danh duy nhất cho bài hát, album hoặc nghệ sĩ cụ thể đó khi được giải mã. Vì nhiều URI on Spotify khá dài (một ví dụ là Spotify: Hiển thị: 3NRV0MHZA8xert0eylpaip mà đồng hồ ở 218 bit), một số hệ thống cần thiết để nén URIS xuống một thứ gì đó dễ quản lý hơn. Đi vào tài liệu tham khảo Media, một trình tự ngắn mã hóa một URI cụ thể, thường dưới 40 bit. Khuyến nghị chỉ là một tra cứu trong một cơ sở dữ liệu mà Spotify duy trì, vì vậy nó cần một kết nối mạng để giải quyết. Kế hoạch mã hóa thực tế từ khuyến nghị phương tiện đến các giá trị trong các thanh khá phức tạp bao gồm CRC, Commolution, cũng như thủng. CRC cho phép chương trình kiểm tra để giải mã chính xác, cũng như sự tích chập cho phép chương trình có một chút lỗi đã kiểm tra trong khi vẫn có kết quả chính xác. Nhị thủ chỉ là loại bỏ các bit để giảm các số được mã hóa, dựa vào tích chập để điền vào các lỗ.

[Peter] giải thích mọi thứ trong đánh giá của mình một cách hữu ích cũng như dễ hiểu. Người tạo ra các mã Spotify đã dừng lại trong các bình luận để cung cấp một số con trỏ có giá trị, bao gồm cả điểm có sẵn là chế độ thứ hai trong đó các dòng không nằm giữa, cho phép nó lưu trữ gấp đôi bit. [Peter] có một gói Python trên GitHub với tất cả các mã cần thiết để bạn bắt đầu giải mã. Có lẽ bạn có thể tích hợp một trình quét mã Spotify vào máy tính mini spotify tùy chỉnh của bạn.

Posted in Uncategorized

Leave a Reply

Your email address will not be published. Required fields are marked *