两个十六进制字节数组的XOR函数

 娱乐老爷_410 发布于 2023-02-07 19:47

我试图执行独占或两个字节数组并将结果作为十六进制字符串返回.我已将两个字节数组转换为相应的二进制字符串.每个字节都有位,因为它有8个字节.

byte[] key =  { 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18 };
byte[] PAN =  { 0x12, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x23 };

到目前为止,我已经使用了一种方法,将字节数组转换为相应的二进制字符串值,例如"10101010101".但是,当我执行以下方法来获取XOR时,我会返回一串笑脸,这可能是一些特殊的ASCII字符.

但是我对如何做到这一点没有任何想法.我想将二进制字符串转换为整数,但这不是一个好的解决方案,因为它不适合作为整数.

请问您有什么想法吗?可能有一些示例代码?

public static string exclusiveOR(string string_1, string string_2)
{
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < string_1.Length; i++)
        sb.Append((char)(string_1[i] ^ string_2[(i % string_2.Length)]));
        String result = sb.ToString();

        return result;
}

ProgramFOX.. 7

试试这个:

public static string exclusiveOR(byte[] key, byte[] PAN)
{
    if (key.Length == PAN.Length)
    {
        byte[] result = new byte[key.Length];
        for (int i = 0; i < key.Length; i++)
        {
            result[i] = (byte)(key[i] ^ PAN[i]);
        }
        string hex = BitConverter.ToString(result).Replace("-", "");
        return hex;
    }
    else
    {
        throw new ArgumentException();
    }
}

这是如何工作的:首先检查数组是否具有相同的长度,如果是这种情况,您将对数组执行XOR操作.该BitConverter.ToString()方法将字节数组转换为字符串,但由于有连字符分隔每个十六进制数,您可以使用该Replace()方法删除这些破折号.

1 个回答
  • 试试这个:

    public static string exclusiveOR(byte[] key, byte[] PAN)
    {
        if (key.Length == PAN.Length)
        {
            byte[] result = new byte[key.Length];
            for (int i = 0; i < key.Length; i++)
            {
                result[i] = (byte)(key[i] ^ PAN[i]);
            }
            string hex = BitConverter.ToString(result).Replace("-", "");
            return hex;
        }
        else
        {
            throw new ArgumentException();
        }
    }
    

    这是如何工作的:首先检查数组是否具有相同的长度,如果是这种情况,您将对数组执行XOR操作.该BitConverter.ToString()方法将字节数组转换为字符串,但由于有连字符分隔每个十六进制数,您可以使用该Replace()方法删除这些破折号.

    2023-02-07 19:48 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有