各种格式的编码解码工具类分享(hex解码 base64编码)


以下是一个简单的Python类,包含了hex解码和base64编码的功能。这个类可以很方便地在你的项目中复用。


class EncodingDecodingTools:
    @staticmethod
    def hex_decode(hex_str):
        """
        将十六进制字符串解码为字节串。

        :param hex_str: 十六进制字符串,例如 '48656c6c6f'
        :return: 解码后的字节串
        """
        # 去除十六进制字符串中的空格(如果有的话),并确保字符串长度为偶数
        hex_str = hex_str.replace(" ", "").strip()
        if len(hex_str) % 2 != 0:
            raise ValueError("Hex string must have an even number of characters")
        # 使用bytes.fromhex()方法进行解码
        return bytes.fromhex(hex_str)

    @staticmethod
    def base64_encode(data):
        """
        将字节串进行base64编码。

        :param data: 要编码的字节串
        :return: 编码后的base64字符串
        """
        # 使用base64.b64encode()方法进行编码,并返回编码后的字符串(去掉b前缀并转为str)
        import base64
        return base64.b64encode(data).decode('utf-8')

# 示例使用
if __name__ == "__main__":
    hex_str = "48656c6c6f20576f726c64"  # Hello World的十六进制表示
    decoded_bytes = EncodingDecodingTools.hex_decode(hex_str)
    print("Hex decoded bytes:", decoded_bytes)  # 输出: b'Hello World'

    data_to_encode = b"Hello World"
    encoded_str = EncodingDecodingTools.base64_encode(data_to_encode)
    print("Base64 encoded string:", encoded_str)  # 输出: SGVsbG8gV29ybGQ=

这个类提供了两个静态方法:`hex_decode`用于将十六进制字符串解码为字节串,`base64_encode`用于将字节串进行base64编码。你可以在你的项目中直接调用这些方法,而不需要实例化这个类。