tencent cloud

Game Multimedia Engine

릴리스 노트
제품 소개
제품 개요
장점 및 특징
제품 기능
응용 시나리오
보안 및 컴플라이언스 인증
사용자 튜토리얼
SDK 다운로드 가이드
제품 기능 데모
기본 기능 데모
시나리오 기반 Demo
콘솔 가이드
사용량 조회
서비스 활성화
시작하기
Quick Integration of SDK
Quick Integration of Sample Project
기본 기능 개발 가이드
인증 키
실시간 음성 채팅 역할 설정
음질 선택
고급 기능 개발 가이드
서버 녹음
레인지 보이스
3D 음향 효과
음향 효과 및 반주
네트워크 오디오 스트림 포워딩 라우팅
사용자 지정 메시지 채널
회사 방화벽 제한을 해결하는 방법
Language Parameter Reference List
GME 채팅방 관리 통합
클라이언트 API
Unity SDK
SDK for Unreal Engine
Cocos2D SDK
SDK for Windows
SDK for iOS
SDK for Android
SDK for macOS
H5 SDK
Electron SDK
SDK for Flutter
SDK Version Upgrade Guide
에러 코드
Toolchain
Server APIs
History
Introduction
API Category
Usage APIs
Recording APIs
Making API Requests
Voice Chat APIs
Application APIs
Data Types
Error Codes
FAQ
제품 기능
문제 해결 가이드
과금
Sample Project 사용 문제
일반 문제
인증
방 입장 실패
사운드 및 오디오
네트워크
음성을 텍스트로 변환
프로그램 내보내기
Service Agreement
Service Level Agreement
문의하기
용어집
GME 정책
데이터 처리 및 보안 계약
개인 정보 보호 정책

인증 키

PDF
포커스 모드
폰트 크기
마지막 업데이트 시간: 2024-01-18 16:00:04
이 문서는 개발자가 GME를 쉽게 디버깅하고 통합할 수 있도록 모든 플랫폼에 대한 인증 키를 설명합니다.

음성 키 백엔드 배포

GME는 음성 채팅 및 오프라인 음성에 대한 인증 키를 제공합니다. 이 문서는 백엔드 배포 체계에 대해 설명합니다. 인증에 사용되는 서명 생성 프로세스에는 플레인 텍스트, 알고리즘이 포함됩니다.

플레인 텍스트

플레인 텍스트는 네트워크 순서대로 다음 필드를 사용하여 구성됩니다.
필드 설명
유형/길이
값 정의/비고
cVer
unsigned char(1)
버전 번호, 입력값: 1
wOpenIDLen
unsigned short(2)
사용자 계정 길이
strOpenID
string
사용자 계정 문자수
dwSdkAppid
unsigned short(4)
개발자 SDKappid
dwReserved1
unsigned int(4)
입력값: 0
dwExpTime
unsigned int(4)
만료 시각(현재시간+유효기간[단위: 초, 권장값 300 초])
dwReserved2
unsigned int(4)
입력값: -1 또는 0xFFFFFFFF
dwReserved3
unsigned int(4)
입력값: 0
wRoomIDLen
unsigned short(2)
사용자가 입장하고자 하는 방 ID의 길이. 오프라인 음성의 경우 0을 입력하십시오.
strRoomID
wRoomIDLen
사용자가 입장하고자 하는 방 ID의 문자수

권한 키는 GME 콘솔에서 얻을 수 있습니다.

알고리즘

TEA 대칭 암호화 알고리즘이 사용됩니다. 초기 단계에서 클라이언트에 인증 기능을 배포하고 나중에 게임 App의 백엔드에 배포하는 것을 권장합니다.
방안
장점
단점
백엔드 배포
보안성 높음
백엔드 개발자 공동 테스트 필요
클라이언트 배포
빠른 통합
보안성 낮음

백엔드 배포 구현 방법

백엔드에서 생성된 암호화된 문자열은 클라이언트로 전송되어 다음 시나리오에 사용됩니다. 방 입장을 위해 EnterRoom API가 호출되면 암호화된 문자열이 방 입장용 매개변수의 authBuffer 필드로 전송됩니다.

암호화 알고리즘 상세 정보

키: APPID에 해당하는 인증 키의 MD5 값으로 길이는 16바이트입니다.
암호화 알고리즘: TEA
암호화 라이브러리 및 샘플: authbuffer.zip 참조
주의사항:
수정된 키는 15분에서 1시간 이내에 적용됩니다. 빈번한 수정은 권장하지 않습니다.

암호화 메소드

1. 플레인 텍스트의 숫자를 네트워크 바이트 순서로 변환합니다.
2. 플레인 텍스트를 순서대로(플레인 텍스트 필드가 선언된 순서) 문자열로 구성합니다.
3. tea를 사용하여 스티칭된 문자열을 암호화합니다. symmetry_encrypt 함수가 출력한 문자열은 암호화된 권한 문자열입니다.
주의사항:
이진법 문자열을 16진법으로 변환하지 마십시오.

예시 코드

C++ 언어를 예로 들면 인증 키의 예시 코드는 다음과 같습니다.
unsigned char pInBuf[512]={0};
xel::byte_writer bw(pInBuf, sizeof(pInBuf));

char cVer = 1;
unsigned short wOpenIDLen = (unsigned short)strlen((const char *)strOpenID);
if (wOpenIDLen > 127) wOpenIDLen = 127;
unsigned short wRoomIDLen = (unsigned short)strlen((const char *)strRoomID);
if (wRoomIDLen > 127) wRoomIDLen = 127;

bw.write_byte(cVer);
bw.write_int16(wOpenIDLen);
bw.write_bytes(strOpenID, wOpenIDLen);
bw.write_int32(dwSdkAppId);
bw.write_int32(0 /*dwRoomID*/);
bw.write_int32(expTime);
bw.write_int32(nAuthBits);
bw.write_int32(0 /*dwAccountType*/);
bw.write_int16(wRoomIDLen);
bw.write_bytes(strRoomID, wRoomIDLen);

int pInLen = bw.bytes_write();

unsigned char pEncryptOutBuf[512] = { 0 };
int iEncrptyLen = 0;

symmetry_encrypt((const unsigned char*)pInBuf, pInLen, (const unsigned char*)key, (unsigned char*)pEncryptOutBuf, &iEncrptyLen);
Java 및 Go 언어 예시 코드 또한 제공합니다. 다운로드하려면 클릭 >>하십시오.

도움말 및 지원

문제 해결에 도움이 되었나요?

피드백