Tulis program atau fungsi (atau set program / fungsi) untuk mengenkripsi dan mendekripsi data dengan spesifikasi sebagai berikut:
Enkripsi
Hitung hash XOR dari input dengan XOR-ing setiap byte satu sama lain.
XOR setiap byte input oleh hash ini.
Geser hasil empat bit ke kiri.
Pad sisi kiri dengan empat bit pertama hash XOR.
Pad sisi kanan dengan empat bit terakhir hash XOR.
Contoh
Masukan yang diberikan:
"G0lf"
(0x47306C66
)Hitung hash XOR:
0x47 ^ 0x30 ^ 0x6C ^ 0x66 = 0x7D
XOR setiap byte oleh hash:
0x3A4D111B
Hasil yang diharapkan (setelah shift dan pad):
"s¤Ñ\x11½"
(0x73A4D111BD
)
Aturan
Program / fungsi Anda dapat input / output dari jenis apa pun yang masuk akal dalam bahasa pilihan golf Anda (String, Byte Array, dll) selama input / output adalah byte yang sebenarnya. Misalnya, Anda tidak dapat menghasilkan string heksidecimal.
Enkripsi dan dekripsi dapat dipisahkan menjadi program yang terpisah (skor akan menjadi ukuran gabungan mereka) atau satu. Metode tunggal dapat mengambil argumen apakah itu harus mengenkripsi atau mendekripsi.
Input untuk enkripsi bisa berukuran minimal 1 byte.
Input untuk dekripsi diharapkan minimal 2 byte.
Bytes yang tidak dapat dicetak tidak perlu diloloskan dalam output.