import hashlib
import base64
import time

def generate_web_challenge_code(target_time_unix):
    # 1. Konstanta
    prefix = "presensi_qr_admin"
    uuid_admin = "66d2b843-614a-11f0-82c6-00155d05b40c"
    
    # 2. Pembulatan timestamp ke kelipatan 4 (sesuai interval 4 detik)
    timestamp = int(target_time_unix)
    rounded_timestamp = timestamp - (timestamp % 4)
    
    # 3. Membuat raw string untuk di-hash
    raw_payload = f"{prefix}:{uuid_admin}:{rounded_timestamp}"
    
    # 4. Membuat Signature (MD5 diambil 16 karakter pertama)
    signature = hashlib.md5(raw_payload.encode()).hexdigest()[:16]
    
    # 5. Gabungkan semua dan Encode ke Base64
    final_string = f"{raw_payload}:{signature}"
    encoded_result = base64.b64encode(final_string.encode()).decode()
    
    return encoded_result

# Contoh penggunaan untuk waktu sekarang
print(generate_web_challenge_code(time.time()))