EveryDay.DevUp

[Unity] 프레임 워크 가이드 - 암복호화 ( v.0.1.0 ) 본문

FrameWork/샘플 및 가이드

[Unity] 프레임 워크 가이드 - 암복호화 ( v.0.1.0 )

EveryDay.DevUp 2020. 6. 17. 06:08

▣ 기본 설정

https://everyday-devup.tistory.com/44

 

[Unity] 프레임 워크 가이드 - 패키지 다운 및 기본 씬 설정

Framework Package를 다음의 링크에서 다운로드 https://everyday-devup.tistory.com/40 [Unity] 프레임 워크 기능 및 사용 가이드 프레임워크의 기능 업데이트 및 사용 가이드를 관리하는 페이지 #2020-05-08 프..

everyday-devup.tistory.com

▶ Resources 폴더에서 Create/Scriptable Object Asset/CryptoData 생성

[ 키 정보를 담고 있는 ScriptableObject CryptoData를 생성 ]
[ 키 정보 입력 ]

: 사용할 AES Key ( size 128, 256 ), AES IV ( size 128 )를 입력 후 Convert 버튼을 클릭한다.

: 사용할 RSA를 Create한 뒤 폴더 경로와 파일 이름을 입력한 후 Save 버튼을 클릭한다. ( RSA Public Key와 Private Key는 C# API를 통해 생성 )

: 기존에 만든 RSA가 있다면 Load 한다.

[ Game Prefab에 CryptoManager를 선택 ]

 

[ 만들었던 CryptoData를 연결 ]

1. Base64 사용

◆ 사용 예시

private void Start()
{
	string testCrypto = "TestData";

	string base64EncodingData = cryptoManager.EncodingBase64( testCrypto );
	Debug.Log( "Base64 인코딩 : " + base64EncodingData );

	string base64DecdingData = cryptoManager.DecodingBase64( base64EncodingData );
	Debug.Log( "Base64 디코딩 : " + base64DecdingData );
}

2. SHA256 HASH 사용

◆ 사용 예시

private void Start()
{
	string testCrypto = "TestData";

	string sha256Base64 = cryptoManager.SHA256Base64( testCrypto );
	Debug.Log( "sha256Base64 : " + sha256Base64 );
}

3. AES ( 128, 192, 256 )  사용

◆ 사용 예시

private void Start()
{
		string testCrypto = "TestData";

		string encryptData = cryptoManager.EncryptAESbyBase64Key( testCrypto );
		Debug.Log( "암호화 : " + encryptData );

		string decryptData = cryptoManager.DecryptAESByBase64Key( encryptData );
		Debug.Log( "복호화 : " + decryptData );
}

4. RSA

◆ 사용 예시

private void Start()
{
	string testCrypto = "TestData";

	string encryptRSA = cryptoManager.EncryptRSAbyBase64PublicKey( testCrypto );
	Debug.Log( "RSA 암호화 : " + encryptRSA );

	string decryptRSA = cryptoManager.DecryptRSAByBase64Key( encryptRSA );
	Debug.Log( "RSA 복호화 : " + decryptRSA );
}

5. 암호화 변수

private void Start()
{
	CryptoValue<int> atk = new CryptoValue<int>();
	atk.Set( 100 );

	Debug.Log( "암복호화 값 : " + atk.Get() );
	Debug.Log( "비암복호화 값 : " + atk.GetUnSafeData() );
}

▣ 해당 컴포넌트 사용 관련 이론

https://everyday-devup.tistory.com/24

 

[Unity] 게임 암호화

게임의 암호화는 유저의 데이터를 지키고, 게임을 서비스 하면서 안정적인 운영을 할 수 있도록 도와주는 것 ▶ 메모리 핵, 앱 변조, 스피드 핵, 데미지 핵과 같은 많은 핵들이 존재하고 방어하는 입장 보다는 공..

everyday-devup.tistory.com

▣ 해당 컴포넌트 사용 관련 구현

https://everyday-devup.tistory.com/25

 

[Unity] 프레임워크 개발 - 5. 암호화 ( Base64 )

자세한 이론은 하단의 링크를 참고 https://everyday-devup.tistory.com/24 [Unity] 게임 암호화 게임의 암호화는 유저의 데이터를 지키고, 게임을 서비스 하면서 안정적인 운영을 할 수 있도록 도와주는 것 �

everyday-devup.tistory.com

https://everyday-devup.tistory.com/28

 

[Unity] 프레임워크 개발 - 5. 암호화 ( 단방향 암호화 SHA256 )

게임에서 사용하는 암호화를 실제 코드로 구현하여 프레임워크에 추가 자세한 이론은 하단의 링크를 참고 https://everyday-devup.tistory.com/24 [Unity] 게임 암호화 게임의 암호화는 유저의 데이터를 지��

everyday-devup.tistory.com

https://everyday-devup.tistory.com/27

 

[Unity] 프레임워크 개발 - 5. 암호화 ( 대칭형 암호화 AES )

게임에서 사용하는 암호화를 실제 코드로 구현하여 프레임워크에 추가 자세한 이론은 하단의 링크를 참고 https://everyday-devup.tistory.com/24 [Unity] 게임 암호화 게임의 암호화는 유저의 데이터를 지��

everyday-devup.tistory.com

https://everyday-devup.tistory.com/

 

[Unity] 프레임워크 개발 - 5. 암호화 ( 비대칭형 암호화 RSA )

게임에서 사용하는 암호화를 실제 코드로 구현하여 프레임워크에 추가 자세한 이론은 하단의 링크를 참고 https://everyday-devup.tistory.com/24 [Unity] 게임 암호화 게임의 암호화는 유저의 데이터를 지��

everyday-devup.tistory.com

https://everyday-devup.tistory.com/31

 

[Unity] 프레임워크 개발 - 7. 암호화 변수

게임 내부에서 중요한 데이터는 메모리 해킹이 되지 않도록 암호화하여 사용할 수 있도록 함 : 암복호화 시에 오버헤드가 있기 때문에 중요한 곳에서만 사용해야함 : 암복호화 되는 데이터와, 즉시 저장되는 변수..

everyday-devup.tistory.com