首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sipdroid数据加密失败

sipdroid数据加密失败
EN

Stack Overflow用户
提问于 2013-05-14 16:55:24
回答 1查看 316关注 0票数 0

我想通过使用相反的字节顺序来创建一个自定义的sipdroid客户端。我认为这使得其他Voip客户端无法解码这些数据。

所以我读了SipDroid的代码。我发现RTP数据是这样的: 1. AudioRecord.read(originalPCM) 2. encode(originalPCM,encodedData) 3. rtp_socket.send(rtp_packet) // encodeData是rtp_packet的数据部分

另一边是: 1. rtp_receive(rtp_packet) 2.解码( encodeData,PCMData) //encodeData是rtp_packet的数据部分3. AudioTrack.write(PCMData)

所以我修改了SipdroidSocket类。在send方法中,我在开头添加了以下代码。

代码语言:javascript
复制
byte[] b = pack.getData();
reverse(b);
pack.setData(b);

并在receive方法的末尾添加以下代码。

代码语言:javascript
复制
    byte[] b = pack.getData();
    reverse(b);
    pack.setData(b);

我认为通过这种方式,两个客户端可以照常工作。但它失败了。我也不知道原因。请帮我找出原因。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2014-08-22 23:36:36

除非一次接收到2,4,8个字节,否则不应反转空洞缓冲区。您应该将数据视为2、4、8字节的元素,具体取决于数据的存储方式。我在这里看到的代码将无法工作。假设您有一个包含数据字节0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08的缓冲区,存储为0x04030201-0x08070605的4字节元素。反转空洞缓冲区将产生0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,这是错误的,因为如果您一次反转一个元素(4字节),您将得到0x05060708-0x04030201。请记住,元素的大小取决于值的存储方式

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16538893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档