FrameWork
[Unity] 프레임워크 개발 - 7. 암호화 변수
EveryDay.DevUp
2020. 5. 5. 15:43
게임 내부에서 중요한 데이터는 메모리 해킹이 되지 않도록 암호화하여 사용할 수 있도록 함
: 암복호화 시에 오버헤드가 있기 때문에 중요한 곳에서만 사용해야함
: 암복호화 되는 데이터와, 즉시 저장되는 변수를 나누어 상황에 따라 사용할 수 있도록 함
using System;
public class CryptoValue<T>
{
string encryptData = string.Empty;
T data;
public void Set(T value)
{
CryptoComponent cryptoComponent = Game.Instance.crypto;
encryptData = Crypto.EncryptAESbyBase64Key( value.ToString(), cryptoComponent.aesBase64Key, cryptoComponent.aesBase64IV );
data = value;
}
public T GetUnSafeData()
{
return (T)Convert.ChangeType( data, typeof( T ) );
}
public T Get()
{
CryptoComponent cryptoComponent = Game.Instance.crypto;
return (T)Convert.ChangeType( Crypto.DecryptAESByBase64Key( encryptData, cryptoComponent.aesBase64Key, cryptoComponent.aesBase64IV ), typeof( T ));
}
}
CryptoValue<int> attack = new CryptoValue<int>();
private void Start()
{
attack.Set( 10 );
Debug.LogWarning( " data : " + attack.Get() + " unsafeData : " + attack.GetUnSafeData() );
}
▶ 게임암호화에 대한 기본 지식
https://everyday-devup.tistory.com/24
▶ 암호화 변수에 사용한 AES 암호화
https://everyday-devup.tistory.com/27