일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Framework
- 최적화
- 2D Camera
- 다이나믹 폰트
- DotsTween
- adfit
- base64
- Unity Editor
- Dynamic Font
- Job 시스템
- 프레임워크
- 이미지 폰트
- Tween
- 단말기 해상도
- jumping ball
- AES
- sha
- job
- RSA
- unity
- 가이드
- 텍스트 메시 프로
- 샘플
- Custom Package
- 커스텀 패키지
- 암호화
- Dots
- TextMeshPro
- ui
- C#
Archives
- Today
- Total
EveryDay.DevUp
[Unity] 프레임워크 개발 - 7. 암호화 변수 본문
게임 내부에서 중요한 데이터는 메모리 해킹이 되지 않도록 암호화하여 사용할 수 있도록 함
: 암복호화 시에 오버헤드가 있기 때문에 중요한 곳에서만 사용해야함
: 암복호화 되는 데이터와, 즉시 저장되는 변수를 나누어 상황에 따라 사용할 수 있도록 함
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
'FrameWork' 카테고리의 다른 글
[Unity] 프레임워크 개발 - Custom Package 생성 (0) | 2020.06.17 |
---|---|
[Unity] 프레임워크 개발 - 8. Canvas (0) | 2020.05.08 |
[Unity] 프레임워크 개발 - 6. 데이터(파일) 쓰기/읽기 (0) | 2020.05.05 |
[Unity] 프레임워크 개발 - 5. 암호화 ( 비대칭형 암호화 RSA ) (0) | 2020.05.05 |
[Unity] 프레임워크 개발 - 5. 암호화 ( 단방향 암호화 SHA256 ) (0) | 2020.05.04 |