3
การซ่อนข้อมูลใน Cats
คุณเป็นสายลับพยายามสื่อสารกับบ้านเกิดเมืองนอนของคุณ แน่นอนว่าข้อมูลจะต้องถูกซ่อนไว้ดังนั้นจึงไม่มีใครปิดบังข้อความของคุณ อะไรจะเหมาะกว่าแมว ทุกคนชอบรูปแมวตลก ๆ[อ้างอิงที่จำเป็น]ดังนั้นพวกเขาจะไม่สงสัยว่ามีข้อมูลลับซ่อนอยู่ในนั้น! แรงบันดาลใจจากอัลกอริธึมที่เกมโมนาโกใช้ในการบันทึกข้อมูลระดับของระดับที่ใช้ร่วมกันมันเป็นหน้าที่ของคุณในการเขียนโปรแกรมที่เข้ารหัสข้อมูลลงในสีที่มีนัยสำคัญน้อยที่สุดของภาพ รูปแบบการเข้ารหัส: 24 บิตแรกจะกำหนดความยาวของไบต์ที่เข้ารหัสที่เหลือเป็นบิต ภาพจะถูกอ่านจากซ้ายไปขวาและจากบนลงล่างเห็นได้ชัดว่าเริ่มจากพิกเซลซ้ายบน ช่องจะอ่านจากสีแดงเป็นสีเขียวเป็นสีน้ำเงิน อ่านบิตที่มีนัยสำคัญน้อยที่สุดจากแต่ละช่อง การบันทึกบิตจะถูกจัดเรียงตาม Big Endian กฎ: โปรแกรมของคุณใช้การเข้ารหัสไบต์เดียวและชื่อไฟล์ภาพเดียวสำหรับภาพพื้นฐาน ภาพที่ได้จะต้องออกมาเป็นไฟล์ PNG สีจริง คุณสามารถใช้ I / O ในรูปแบบใดก็ได้ที่คุณต้องการ (ARGV, STDIN, STDOUT, การเขียน / อ่านจากไฟล์) ตราบใดที่คุณระบุวิธีการใช้โปรแกรมของคุณ คุณต้องเลือกภาพแมวตลกแบบสุ่มและเข้ารหัสโปรแกรมของคุณเพื่อแสดงว่าโปรแกรมของคุณทำงานได้ คุณอาจสมมติว่าคุณได้รับอินพุตที่ถูกต้องเท่านั้นหากจำนวนบิตไม่เพียงพอภาพไม่ได้อยู่ในรูปแบบสีจริงภาพไม่มีอยู่หรือมีปัญหาคล้ายกันคุณอาจทำสิ่งที่คุณต้องการ คุณอาจสันนิษฐานว่าภาพที่ให้ไม่มีช่องอัลฟา ความยาวนับเป็น UTF-8 ไบต์โดยไม่มี BOM คุณสามารถใช้สคริปต์ PHP นี้เพื่อทดสอบวิธีแก้ปัญหาของคุณระบุชื่อไฟล์ PNG เป็นอาร์กิวเมนต์บรรทัดคำสั่งแรก: <?php if ($argc === 1) die('Provide …