在实时音视频互动过程中,开发者需要对媒体流加密,从而保障用户的数据安全。Agora 提供内置加密方案,加密模式和密钥存在于 app 和 SDK 中。
下图描述了启用媒体流加密后的数据传输流程:
在启用媒体流加密前,请确保已在你的项目中实现基本的实时音视频功能。
在加入频道前,调用 enableEncryption
方法开启内置加密,并设置加密模式和密钥。
同一频道内所有用户必须使用相同的加密模式和密钥。
Agora 目前支持 128 位国密 SM4 加密,ECB 模式。
// 创建一个 EncryptionConfig 实例
agora::rtc::EncryptionConfig Config;
// 设置加密模式为国密 SM4 加密模式
Config.encryptionMode = agora::rtc::SM4_128_ECB;
// 设置加密密钥
Config.encryptionKey = "yourencrypt_key"
// 启用内置加密
connection->enableEncryption(true, Config)
你也可以参考 SDK 包中的 sample_send_encrypted_h264.cpp
和 sample_receive_decrypted_h264.cpp
示例项目,了解如何进行媒体流的加解密。