해당 기능은 JSON 파일을 암호화 및 복호화 해서 파일을 세이브/ 로드 하는 기능이다.
AES 암호화를 제외한 코드는 직접 작성하였다.
다음과 같이 사용이 가능하다.
public static int Gold
{
get
{
return gold;
}
private set
{
gold = value;
Save("Gold", 1000);
}
}
static int gold;
public static void DataLoad()
{
try
{
int Gold = Load("Gold", 1000);
}
catch (Exception e)
{
Gold = 10000;
}
}
public static void Save<T>(string ID, T data)
{
AESJsonLoader.Save(ID, data);
}
public static T Load<T>(string ID, T dafaultValue)
{
return AESJsonLoader.LoadData<T>(ID, dafaultValue);
}
해당 예제를 보면, AESJsonLoader을 이용해서 Save,Load 함수를 따로 구현하였다. (사용 편의를 위해)
골드 프로퍼티가 변경되면, Save 메서드를 호출하여, JSON 파일 형식으로 저장한다.
게임 시작시(Awake와 같은 함수에서 호출하면 될 것) DataLoad() 함수를 사용해서 Gold를 불러온다.
여기서 굳이 암호화 방법을 설명하지는 않겠지만, 간단하게 설명하자면
Key(암호화 키가 아닌, 값을 저장하는 ID와 같은 키다.)
와 value 값을 전달하면, 내부적인 알고리즘으로 value값과 암호화 키를 잘 조합해서 암호화한다.
Ex)Key = "Gold", value = 10,000 , const string 암호키 = "!#@hihihi" //내부 알고리즘// => 암호화 문자열
이를 암호화 키를 이용해서
적용=========================================================
우선 https://github.com/JamesNK/Newtonsoft.Json
에서 JSON 관련 라이브러리를 다운 받는다.
https://github.com/OfficialCaox/AESJsonLoader
위의 코드를 복붙을 하던, 압축파일로 받아서 적당히 적용하던 자유롭게 사용하면 된다.
알고리즘은 간단하다.
1. 암호화
1-1.암호화 하고 싶은 파일을 JSON형식 문자열로 변환
1-2.JSON 문자열을 파일에 저장할 때 암호화
2. 복호화
2-1.파일의 암호문을 복호화
2-2.JSON 형식으로 변환
키는 원하는 곳에 선언해서 사용하면 된다.
'개발일지 > 기능구현' 카테고리의 다른 글
[Unity] 투사체의 방향 전환 구현 CalculateAngle (0) | 2023.10.26 |
---|---|
[Unity] 가중치 확률 메소드 구현 WeightedRandomIndex (1) | 2023.10.26 |
[Unity] 확률 함수 구현 Random Function (1) | 2023.10.26 |
[Unity] Android, IOS 푸시알림 구현 (1) | 2023.05.03 |
오프라인 보상 시스템 구현(시간 검증 포함) (0) | 2023.05.01 |