เขียนโปรแกรมหรือฟังก์ชั่น (หรือชุดของโปรแกรม / ฟังก์ชั่น) เพื่อเข้ารหัสและถอดรหัสข้อมูลตามข้อกำหนดต่อไปนี้:
การเข้ารหัสลับ
คำนวณแฮช XOR ของอินพุตโดย XOR-ing ทุกไบต์พร้อม ๆ กัน
แฮคเกอร์ทุกไบต์ของอินพุทโดยแฮชนี้
เลื่อนผลลัพธ์ไปทางซ้ายสี่บิต
วางด้านซ้ายด้วยแฮชสี่บิตแรกของแฮช
วางด้านขวาด้วยแฮช XOR สี่บิตสุดท้าย
ตัวอย่าง
อินพุตที่ได้รับ:
"G0lf"
(0x47306C66
)คำนวณแฮช XOR:
0x47 ^ 0x30 ^ 0x6C ^ 0x66 = 0x7D
แฮคเกอร์ทุกไบต์โดยแฮ:
0x3A4D111B
ผลลัพธ์ที่คาดหวัง (หลังเปลี่ยนและเบาะ):
"s¤Ñ\x11½"
(0x73A4D111BD
)
กฎระเบียบ
โปรแกรม / ฟังก์ชั่นของคุณสามารถอินพุต / เอาต์พุตชนิดใดก็ได้ที่เหมาะสมกับภาษากอล์ฟที่คุณเลือก(String, Byte Array, ฯลฯ )ตราบใดที่อินพุต / เอาท์พุตเป็นไบต์จริง ตัวอย่างเช่นคุณไม่สามารถส่งออกสตริงเลขฐานสิบหก
การเข้ารหัสและถอดรหัสสามารถแยกออกเป็นโปรแกรมแยกต่างหาก (คะแนนจะเป็นขนาดรวมกัน) หรือขนาดเดียว วิธีการเดี่ยวสามารถโต้แย้งว่าควรจะเข้ารหัสหรือถอดรหัส
อินพุตสำหรับการเข้ารหัสสามารถคาดว่ามีขนาดอย่างน้อย 1 ไบต์
อินพุตสำหรับถอดรหัสสามารถคาดว่าจะมีอย่างน้อย 2 ไบต์
ไม่สามารถพิมพ์ไบต์ที่ไม่สามารถพิมพ์ได้ในเอาต์พุต