namespace PlaneGcsSdk.Contract.DtuClient
{
///
/// 进行数据透传时利用随机码对MavLink数据包进行加密和解密的辅助类。
///
public static class DataEncryptHelper
{
///
/// 对数据进行加密处理。
///
///
/// 密钥
///
///
public static void EncryptByKey(this byte[] data, byte key, int offset = 0, int size = -1)
{
int count;
if (size == -1)
{
count = data.Length - offset;
}
else
{
count = size + offset;
}
for (var i = offset; i < count; i++)
{
//下面算法实现高低位调转
var ch = data[i];
ch >>= 4;
data[i] <<= 4;
data[i] |= ch;
//根据Key进行异或处理
//data[i] ^= key;
}
}
///
/// 对数据进行解密处理。
///
///
///
public static void DecryptByKey(this byte[] data, byte key, int offset = 0, int size = -1)
{
int count;
if (size == -1)
{
count = data.Length - offset;
}
else
{
count = size + offset;
}
for (var i = offset; i < count; i++)
{
//根据Key进行异或处理
//data[i] ^= key;
//下面算法实现高低位调转
var ch = data[i];
ch >>= 4;
data[i] <<= 4;
data[i] |= ch;
}
}
}
}