g0850531 发表于 2015-2-2 15:02:07

使用加解密接口无法实现视频数据的解密

你好,我使用V5.2客户端的c#版demo,开启加解密功能,可以实现本地音视频数据的加密,对于接收方,可以对加密音频数据解密,但对加密视频数据并未调用该函数无法实现解密,求解~
加解密代码如下#region 数据加解密
private void Data_EncDec(int dwUserId, int dwFlags, IntPtr lpInBuf, int dwInSize,
IntPtr lpOutBuf, ref int lpOutSize, int lpUserValue)
{
Console.WriteLine(dwFlags);

if ((dwFlags & AnyChatCoreSDK.BRAC_DATAENCDEC_FLAGS_ENCMODE) != 0)
{
if ((dwFlags & AnyChatCoreSDK.BRAC_DATAENCDEC_FLAGS_AUDIO) != 0)
{
//音频
string MingAudio_InBufData = Marshal.PtrToStringUni(lpInBuf);//格式转换
byte[] MingAudio_Buffer = Encoding.Unicode.GetBytes(MingAudio_InBufData);

//加密算法
byte[] outarry = MingAudio_Buffer;

Marshal.Copy(outarry, 0, lpOutBuf, outarry.Length);
lpOutSize = outarry.Length;
}
else if ((dwFlags & AnyChatCoreSDK.BRAC_DATAENCDEC_FLAGS_VIDEO) != 0)
{
//视频
string MingVideo_InBufData = Marshal.PtrToStringUni(lpInBuf);//格式转换
byte[] MingVideo_Buffer = Encoding.Unicode.GetBytes(MingVideo_InBufData);

//加密算法
byte[] outarry = MingVideo_Buffer;

Marshal.Copy(outarry, 0, lpOutBuf, outarry.Length);
lpOutSize = outarry.Length;
}
}
else if ((dwFlags & AnyChatCoreSDK.BRAC_DATAENCDEC_FLAGS_DECMODE) != 0)
{
if ((dwFlags & AnyChatCoreSDK.BRAC_DATAENCDEC_FLAGS_AUDIO) != 0)
{
//音频
string MiAudio_InBufData = Marshal.PtrToStringUni(lpInBuf);//格式转换
byte[] MiAudio_Buffer = Encoding.Unicode.GetBytes(MiAudio_InBufData);

//解密算法
byte[] outarry = MiAudio_Buffer;

Marshal.Copy(outarry, 0, lpOutBuf, outarry.Length);
lpOutSize = outarry.Length;
}
else if ((dwFlags & AnyChatCoreSDK.BRAC_DATAENCDEC_FLAGS_VIDEO) != 0)
{
//视频
string MiVideo_InBufData = Marshal.PtrToStringUni(lpInBuf);//格式转换
byte[] MiVideo_Buffer = Encoding.Unicode.GetBytes(MiVideo_InBufData);

//解密算法
byte[] outarry = MiVideo_Buffer;

Marshal.Copy(outarry, 0, lpOutBuf, outarry.Length);
lpOutSize = outarry.Length;
}
}
}
#endregion

admin 发表于 2015-2-2 15:08:29

您好,您的算法有问题,视频流是二进制格式,中间可能包含'\0',而您的算法,只适合对字符串的处理,遇到'\0'就认为字符流结束了。

廖斌 发表于 2015-2-2 15:12:10

还要注意回调函数返回值要是0,不能是其他值。参考
http://bbs.anychat.cn/forum.php?mod=viewthread&tid=767&highlight=%BC%D3%C3%DC

g0850531 发表于 2015-2-2 15:46:16

admin 发表于 2015-2-2 15:08
您好,您的算法有问题,视频流是二进制格式,中间可能包含'\0',而您的算法,只适合对字符串的处理,遇到'\ ...

谢谢,知道问题出在哪了

g0850531 发表于 2015-2-2 15:46:44

廖斌 发表于 2015-2-2 15:12
还要注意回调函数返回值要是0,不能是其他值。参考
http://bbs.anychat.cn/forum.php?mod=viewthread&tid= ...

嗯嗯,谢谢提醒
页: [1]
查看完整版本: 使用加解密接口无法实现视频数据的解密