Điều tôi băn khoăn là liệu điều này có thể được thực hiện theo hướng khác hay không, để có được độ dài của dữ liệu văn bản gốc ban đầu cho bản mã.
RC5 là một mật mã khối; những gì bạn đang hỏi là về chế độ mật mã khối (và phần đệm mà việc triển khai đó sử dụng); không có đủ thông tin để trả lời câu hỏi cụ thể của bạn; tuy nhiên tôi có một phỏng đoán.
"Mật mã khối" là một biến đổi không thể đảo ngược từ một chuỗi bit n bit (trong trường hợp này, $n=64$) thành chuỗi bit n bit. Cái mà "chế độ mật mã khối" thực hiện là "mật mã khối" và sử dụng nó theo cách để thực hiện một hoạt động hữu ích hơn, chẳng hạn như mã hóa một bản rõ có độ dài tùy ý.
Bây giờ, nhìn lướt qua mã, có vẻ như mã sử dụng "chế độ ECB" để mã hóa chuỗi (nói chung là một lựa chọn tồi - tất nhiên, đó không phải là vấn đề của bạn). Với "chế độ ECB", bản thân chế độ này chỉ có thể xử lý các bản rõ có độ dài là bội số của độ dài khối (trong trường hợp này là 16 byte). Bởi vì chúng tôi thường muốn xử lý các văn bản gốc có độ dài tùy ý, những gì chúng tôi làm là thêm "phần đệm", nghĩa là, một số nội dung bổ sung ở cuối để làm cho độ dài là bội số của 16 byte (khi đó chế độ có thể xử lý).
Phần đệm này được thiết kế theo cách giúp việc loại bỏ phần đệm tại thời điểm giải mã trở nên dễ dàng - tuy nhiên, có một số khả năng và mã giải mã bạn cung cấp không cho chúng tôi biết mã nào đang được sử dụng. Trong chế độ phổ biến nhất, byte cuối cùng được sử dụng để biểu thị số lượng byte đệm đã được thêm vào - bạn có thể muốn xem liệu đó có phải là trường hợp trong các ví dụ của mình không.