java字节码、十六进制、python字节码相互转换

复制代码
def pb2jb(byte_arr):
    """
    python字节码转java字节码
    :param byte_arr:
    :return:
    """
    return [int(i) - 256 if int(i) > 127 else int(i) for i in byte_arr]


def jb2pb(byte_arr):
    """
    java 字节码转python字节码
    :return:
    """
    return [i + 256 if i < 0 else i for i in byte_arr]


def hex2jb(hex_str):
    """
    十六进制数据转java字节码
    eg:
        hex_str = "22 4c 65 6f 69 65 22 20"
    :return:
    """
    return [int(i, 16) - 256 if int(i, 16) > 127 else int(i, 16) for i in hex_str.split(" ")]


def hex2pb(hex_str):
    """
    十六进制数据转python字节码
    eg:
        hex_str = "22 4c 65 6f 69 65 22 20"
    :return:
    """
    return [int(i, 16) for i in hex_str.split(" ")]


def pb2str(byte_arr, encoding="utf-8"):
    """
    python字节码转str
    :return:
    """
    return bytes(byte_arr).decode(encoding)


def jb2str(byte_arr, encoding="utf-8"):
    """
    java字节码转str
    :return:
    """
    return bytes(jb2pb(byte_arr)).decode(encoding)


def hex2str(hex_str, encoding="utf-8"):
    """
    hex转str
    :param hex_str: "22 4c 65 6f 69 65 22 20"
    :param encoding:
    :return:
    """
    return bytes(hex2pb(hex_str)).decode(encoding)
复制代码

 

posted @   Leoie  阅读(21)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示