Tôi đang cố gắng tạo một CD-KEY duy nhất để đặt trong hộp sản phẩm của chúng tôi, giống như một CD-KEY thông thường được tìm thấy trong các hộp phần mềm tiêu chuẩn mà người dùng sử dụng để đăng ký sản phẩm.Thuật toán để tạo CD-KEY duy nhất có xác nhận
Tuy nhiên chúng tôi không bán phần mềm, chúng tôi đang bán bộ sưu tập DNA cho mục đích hình sự và y tế. Người dùng sẽ nhận được một bộ sưu tập nước bọt bằng thư với CD-KEY trên đó và họ sẽ sử dụng CD-KEY đó để tạo một tài khoản trên trang web của chúng tôi và nhận kết quả của họ. Các kết quả từ bài kiểm tra sẽ được liên kết với CD-KEY. Đây là cách duy nhất mà chúng tôi sẽ phải liên kết các kết quả cho bệnh nhân. Do đó điều quan trọng là nó không thất bại :)
Một trong những yêu cầu sẽ là danh sách các CD-KEY phải đủ "dàn trải" để không có khả năng ai đó nhập sai CD-KEY và vẫn có nó được chấp thuận cho một người khác kit, do đó trộn lên hai bộ dụng cụ. Điều đó có thể khiến chúng tôi phải chịu trách nhiệm hàng ngàn đô la.
Ví dụ, nó không thể là một chuỗi gia tăng của số như
...
Lý do là nếu ai đó nhận được bộ 00.002, nhưng đăng ký nó như 000.003 bởi tai nạn, sau đó kết quả của anh ta sẽ được kết hợp với người khác. Vì vậy, nó phải giống như số thẻ tín dụng ... Trừ khi một chuỗi hợp lệ được nhập, cơ hội của bạn ngẫu nhiên nhấn một số hợp lệ là 1 trong một triệu ...
Ngoài ra, chúng tôi đang bán hơn 50.000 bộ dụng cụ hàng năm cho các nhà cung cấp khác nhau (người sẽ tạo ra các CD-KEYS của riêng họ sử dụng thuật toán của chúng tôi) để chúng tôi không thể duy trì danh sách tất cả các CD-KEYS đã phát hành trước đó để kiểm tra trùng lặp. Thuật toán phải tạo ra các CD-KEY duy nhất.
Chúng tôi cũng yêu cầu khả năng xác minh rằng CD-KEY hợp lệ bằng thuật toán kiểm tra nhanh, để chúng tôi có thể thông báo cho người dùng nếu mã mà anh nhập không hợp lệ. Điều này bỏ ra nhiều thuật toán băm hoặc MD5 tôi tin. Và nó không thể là 128 bit bởi vì, ai sẽ dành thời gian đó để loại nó ra trên màn hình máy tính?
Cho đến nay đây là những gì tôi đã suy nghĩ cấu trúc CD-KEY cuối cùng sẽ trông giống như
(mã sản phẩm 4 char) - (4 char đang bán lại) - (12 char độc đáo, có thể kiểm chứng đĩa CD-KEY)
Ví dụ: 384A - gTLD - {4565 - FR54 - EDF3}
Để đảm bảo sự độc đáo trong những chìa khóa, tôi có thể bao gồm ngày hiện tại (20.090.521) như một phần của nguồn. Chúng tôi sẽ không tạo ra khóa duy nhất nhiều hơn một lần một tuần, do đó, giá trị này thay đổi thường xuyên đủ cho mục đích của giá trị ban đầu duy nhất.
Tôi có thể sử dụng thuật toán nào để tạo khóa duy nhất?
Mật mã không an toàn, nếu an toàn chỉ nằm trong thuật toán, được giữ bí mật. :) –
khóa cd cuối cùng sẽ được mã hóa bằng thuật toán loại băm có khóa bí mật. –