自定义加解密
在实时音视频互动中,您可以选择对媒体流进行加密,从而保障数据安全。融云提供两套加密方案:
- SDK 内置 SRTP 加密:使用安全实时传输协议,是协议层的标准加密方式。以开关形式提供,使用简单。
- 自定义加解密:由您完全实现加解密算法,融云服务只对数据做转发,适用于对安全性有特殊要求的场景。
自定义加密限制
- 使用自定义加密后,服务端无法做合流处理,因此不适用于直播场景。
- 无法使用部分 RTC 服务端功能,包括:云端录制、云端截图、内容审核、云播放器。
- 若使用自定义加密,需要确保发送端和接收端的加解密算法一致,否则会无法正常通话。
- 自定义加密可分别针对音频或视频的原始数据执行,音频和视频的加密算法可以独立设置。
- 无论何种加密方式,都会对客户端、服务器造成额外的资源消耗,在低性能设备上可能会影响体验。
SRTP 加密
SRTP 开关
您可以在加入音视频房间前,在 RCRTCEngine 的 Config 中打 开 SRTP 开关。
接口原型
Objective C
@property (nonatomic, assign) BOOL enableSRTP;
参数说明
| 属性 | 类型 | 说明 |
|---|---|---|
enableSRTP | BOOL | 是否启用 SRTP 加密。YES 为启用,NO 为关闭。默认为 NO。 |
代码示例
Objective C
#import <RongRTCLib/RongRTCLib.h>
// 加入房间前启用 SRTP 加密
[RCRTCEngine sharedInstance].config.enableSRTP = YES;
自定义加密
实现流程
实现自定义加解密需要以下两个步骤:
- 实现加解密代理:分别实现 RCRTCCustomizedEncryptorDelegate 和 RCRTCCustomizedDecryptorDelegate 协议。
- 设置代理:将实现的代理设置到 RTCLib SDK 中。
步骤 1:实现自定义加解密代理
RTCLib SDK 在 RCRTCCryptoDelegate.h 文件中提供了 RCRTCCustomizedEncryptorDelegate 和 RCRTCCustomizedDecryptorDelegate 两个加解密代理协议。您可以通过实现这些协议来获取需要加解密的媒体流数据,并在对应的方法中实现自定义的加解密逻辑。
实现加密代理
实现 RCRTCCustomizedEncryptorDelegate 的加密回调