我是靠谱客的博主 害怕丝袜,最近开发中收集的这篇文章主要介绍【VOS】SIP软电话对接VOS服务器之RC4加密对接,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

RC4加密

RC4是一种对称密码算法,它属于对称密码算法中的序列密码(streamcipher,也称为流密码),它是可变密钥长度,面向字节操作的流密码。可以加密和解密,同一个key。

VOS加密

Vos服务器已公开其加密规范,有两个版本,目前均可用,下载地址如下:
VOS加密规范(V1.1) :支持SIP,H323,及RTP协议的加密,加密方式仅支持RC4
VOS加密规范(V2.0):仅支持SIP协议加密,但加密方式支持的更多。

实现方式

在发送SIP消息之前进行加密,在接收SIP消息之后进行解密,这样即可快速简洁的做到版本的兼容。
1.RC4加密方法:

void rc4_init(unsigned char *s, unsigned char *key, unsigned long Len)
{
int i =0, j = 0;
char k[256] = {0};
unsigned char tmp = 0;
for (i=0;i<256;i++) {
s[i] = i;
k[i] = key[i%Len];
}
for (i=0; i<256; i++) {
j=(j+s[i]+k[i])%256;
tmp = s[i];
s[i] = s[j];
s[j] = tmp;
}
}
void rc4_crypt(unsigned char *s, unsigned char *Data, unsigned long Len)
{
int i = 0, j = 0, t = 0;
unsigned long k = 0;
unsigned char tmp;
for(k=0;k<Len;k++) {
i=(i+1)%256;
j=(j+s[i])%256;
tmp = s[i];
s[i] = s[j];
s[j] = tmp;
t=(s[i]+s[j])%256;
Data[k] ^= s[t];
}
} 

2.使用方法

rc4_init
rc4_crypt

因为使用的是异或操作,所以加密运行一次上面的方法,再运行一次上面方法即对其解密。

3.VOS规范头部构建
除加密后的SIP消息之外的头部包含两部分,一是消息头部,二是消息体的头部。
消息头部如下图,长度为8个字节,前6个保持如图所示不变,后2个为消息体的长度,如实计算填写即可:
这里写图片描述

消息体头部如下图,长度可变,第一个字节为00不变,第二个为分机号长度,可变,剩余字节为分机号:
这里写图片描述
如图剩余部分的为加密后的SIP消息内容。

4.加密发送,接收解密
加密解密部分的头部构建是一致的,解密时使用同一个KEY解密接口,KEY为分机号的密码。

PS:有问题可随时交流,个人网站:www.vvsip.com,QQ:272108638

最后

以上就是害怕丝袜为你收集整理的【VOS】SIP软电话对接VOS服务器之RC4加密对接的全部内容,希望文章能够帮你解决【VOS】SIP软电话对接VOS服务器之RC4加密对接所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部