Aşağıdaki spesifikasyona göre verileri şifrelemek ve şifresini çözmek için bir program veya işlev (veya program / işlev kümesi) yazın:
Şifreleme
Her baytı birbiri ile XOR yaparak girişin XOR karmasını hesaplayın.
Bu karma tarafından girdinin her baytı XOR.
Sonucu dört bit sola kaydır.
Sol tarafı, XOR karmasının ilk dört bitiyle doldurun.
Sağ tarafı XOR hashının son dört bitiyle doldurun.
Misal
Verilen girdi:
"G0lf"
(0x47306C66
)XOR karmasını hesapla:
0x47 ^ 0x30 ^ 0x6C ^ 0x66 = 0x7D
XOR her bayt karma tarafından:
0x3A4D111B
Beklenen sonuç (vardiya ve pedden sonra):
"s¤Ñ\x11½"
(0x73A4D111BD
)
kurallar
Programınız / fonksiyonunuz, giriş / çıkış gerçek bayt olduğu sürece , seçtiğiniz golf dilinde (String, Byte Array, vb.) Ne tür olursa olsun giriş / çıkış yapabilir . Örneğin, onaltılık bir dize çıktısı veremeyebilirsiniz.
Şifreleme ve şifre çözme ayrı programlara ayrılabilir (puan birleşik büyüklükte olacaktır) veya tek bir programda. Tek yöntemler, şifrelemesi veya şifresinin çözülmesi gerekip gerekmediğine ilişkin bir argüman alabilir.
Şifreleme girişinin en az 1 bayt boyutunda olması beklenebilir.
Şifre çözme girişinin en az 2 bayt olması beklenebilir.
Yazdırılamayan baytların çıkıştan kaçmasına gerek yoktur.