AES sử dụng kích thước khối 16 byte; nó là admirably phù hợp với nhu cầu của bạn nếu giới hạn của bạn 10-15 ký tự là công ty. Sơ đồ đệm PKCS # 11 (IIRC) sẽ thêm 6-1 byte vào dữ liệu và tạo ra kết quả chính xác là 16 byte. Bạn không thực sự cần sử dụng một chế độ mã hóa (như CBC) vì bạn chỉ mã hóa một khối. Có một vấn đề về cách bạn muốn xử lý các khóa - luôn có vấn đề về cách bạn xử lý các khóa mã hóa.
Nếu bạn phải đi với độ dài dữ liệu ngắn hơn cho các chuỗi ngắn hơn, thì có thể bạn cần xem xét AES ở chế độ CTR. Điều này sử dụng khóa và bộ đếm để tạo luồng byte XOR'd với các byte của chuỗi. Nó sẽ để lại chuỗi được mã hóa của bạn ở cùng độ dài với chuỗi ký tự đầu vào.
Bạn sẽ khó có thể tìm được thuật toán nén nhằm mục đích giảm độ dài của chuỗi ngắn như vậy, do đó việc nén trước khi mã hóa chỉ là một lựa chọn.
Nguồn
2010-06-16 07:09:40
Có yêu cầu mã hóa là "cứng" (trong trường hợp này tôi chỉ có nghĩa là không tầm thường) để bẻ khóa hay chỉ nhằm mục đích rút ngắn chuỗi? –
rút ngắn chuỗi và "khó crack" hơn chỉ là phần thưởng –