功能描述
在实时音视频互动过程中,开发者需要对媒体流加密,从而保障用户的数据安全。AR 提供内置加密方案和自定义加密方案,区别如下:
- 内置加密:加密模式和密钥存在于 app 和 SDK 中。
- 自定义加密:加密模式和密钥仅存在于 app 中。
你可以根据需要选择合适的加密方案。
通信和直播场景均支持媒体流加密功能。但是在直播场景下,AR 不支持将加密后的媒体流推到 CDN 上。
如需使用媒体流加密功能,请确保接收端和发送端都使用相同的加密方案,否则会出现未定义行为(例如音频无声或视频黑屏)。
实现方法
在启用媒体流加密前,请确保已在你的项目中实现基本的实时音视频功能。
使用内置的加密方案
在加入频道前,调用 enableEncryption
方法开启内置加密,并设置加密模式和密钥。
同一频道内所有用户必须使用相同的加密模式和密钥。
AR 支持 4 种加密模式:
AES_128_XTS
: 128 位 AES 加密,XTS 模式。AES_128_ECB
: 128 位 AES 加密,ECB 模式。AES_256_XTS
: 256 位 AES 加密,XTS 模式。SM4_128_ECB
: 128 位国密 SM4 加密,ECB 模式。
示例代码
EncryptionConfig _$EncryptionConfigFromJson(Map<String, dynamic> json) {
return EncryptionConfig(
_$enumDecodeNullable(_$EncryptionModeEnumMap, json['encryptionMode']),
json['encryptionKey'] as String,
);
}