#!/usr/bin/env python

"""
Copyright (c) 2006-2024 sqlmap developers (https://sqlmap.org/)
See the file 'LICENSE' for copying permission
"""

from lib.core.enums import PRIORITY

# 设置优先级为低
__priority__ = PRIORITY.LOW

def dependencies():
    pass

def tamper(payload, **kwargs):
    """
    这个函数用于篡改（tamper）输入的payload，将所有字符转换为十六进制形式的HTML实体编码（例如，' -> &#x31;）。

    参数：
        payload：要篡改的原始payload。
        **kwargs：其他可选参数（在本函数中未使用）。

    功能：
        - 遍历payload中的每个字符，并将每个字符转换为其对应的十六进制HTML实体形式。

    示例：
        >>> tamper("1' AND SLEEP(5)#")
        '&#x31;&#x27;&#x20;&#x41;&#x4e;&#x44;&#x20;&#x53;&#x4c;&#x45;&#x45;&#x50;&#x28;&#x35;&#x29;&#x23;'
    """

    retVal = payload

    if payload:
        retVal = ""  # 初始化返回值字符串
        i = 0 # 初始化索引

        while i < len(payload):
            # 将当前字符转换为其对应的十六进制HTML实体形式，并添加到返回值字符串
            retVal += "&#x%s;" % format(ord(payload[i]), "x")
            i += 1  # 移动索引，处理下一个字符

    return retVal
