ฉันจะถือว่าคุณได้ดำเนินการ PBKDF2 แล้วโดยมีการวนซ้ำคงที่ 1,000 ครั้งที่กำหนดไว้ (ซึ่งก็คือ เอ่อ ในระดับต่ำสุดของการรักษาความปลอดภัย) และการตรวจสอบคีย์สองไบต์ได้รับการตรวจสอบแล้ว
AES เองก็ไม่ต่างกัน และดูเหมือนว่า Winzip ก็ไม่ได้ใช้งานอะไรเป็นพิเศษ สิ่งเดียวที่ค่อนข้างแปลกคือเคาน์เตอร์อยู่ในลิตเติ้ลเอนเดียน นี่คือรหัส C ทั้งหมด ดังนั้นความเอนเดียนจึงถูกกำหนดโดยแพลตฟอร์ม และส่วนใหญ่หมายถึงเอนเดียนน้อย
ไม่มีสิ่งใดห้ามการใช้ตัวนับเอนเดียนเล็กน้อยสำหรับโหมด CTR แต่ใน 99% ของกรณี จะเป็นเอนเดียนขนาดใหญ่ คุณอาจต้องติดตั้ง CTR-LE ด้วยตัวเองบนรหัส AES (หรือ AES-ECB ซึ่งเหมือนกัน)
โปรดทราบว่ามาตรฐาน ZIP - เอ่อ - กำหนด ส่วนหัวที่เข้ารหัสดังนั้นจุดเริ่มต้นของข้อความธรรมดาที่ถอดรหัสแล้วจะไม่ใช่เนื้อหาของไฟล์
ในทำนองเดียวกัน แท็กการรับรองความถูกต้องเป็นเพียง HMAC-SHA1-80 บนข้อความเข้ารหัส HMAC-SHA1-80 เป็นเพียง HMAC-SHA-1 ซึ่งใช้เพียง 80 บิต กล่าวคือ ครึ่งหนึ่งของขนาดเอาต์พุตของ HMAC-SHA-1 โดยปกติจะเป็นบิตซ้ายสุด
หากคุณยังติดขัดอยู่ ฉันจะตรวจสอบโค้ดอย่างละเอียดเพื่อตรวจสอบว่าคุณไม่มีค่าย้อนหลัง (เช่น บางทีมันอาจใช้ไบต์ขวาสุดของ HMAC ซึ่งไม่น่าเป็นไปได้ แต่ใช่)