public void EncryptTest() { Xor xor = new Xor(0xab); Assert.AreEqual <byte>(xor.Encrypt(new byte[] { 0xba, 0xda, 0xff })[0], 0x11); Assert.AreEqual <byte>(xor.Encrypt(new byte[] { 0xba, 0xda, 0xff })[1], 0x71); Assert.AreEqual <byte>(xor.Encrypt(new byte[] { 0xba, 0xda, 0xff })[2], 0x54); }
public void Unigraph_XorTest() { Xor xor = new Xor(Utility.EnglishAlphabet());// KeyedEnglishAlphabet("KRYPTOS")); cipher = ""; clear = ""; generated = ""; for (int i = 0; i < 25; i++) { xor.Key = xor.GenerateRandomString(11); generated = xor.GenerateRandomString(); cipher = xor.Encrypt(generated); clear = xor.Decrypt(cipher); Assert.AreEqual(generated, clear); } }
public static void SaveGameData(bool isAutoSave = false) { var gameData = Rm_RPGHandler.Instance; if (!isAutoSave) { Debug.Log("[RPGAIO] Saving Game Data ..."); } var saveFile = JsonConvert.SerializeObject(gameData, Formatting.Indented, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.Objects, TypeNameAssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple, ObjectCreationHandling = ObjectCreationHandling.Replace }); string saveFileEncoded; if (GameDataSaveLoadManager.Instance.EncryptFiles) { var crypto = new Xor(); saveFileEncoded = crypto.Encrypt(saveFile, GameDataSaveLoadManager.Instance.EncryptKey); } else { saveFileEncoded = saveFile; } Directory.CreateDirectory(SavePath); var oldFileName = SavePath + GameDataSaveLoadManager.Instance.GameDataFileName; if (Rm_RPGHandler.Instance.Preferences.EnableBackupOnSave && !isAutoSave && File.Exists(oldFileName)) { if (Rm_RPGHandler.Instance.Preferences.OneBackupPerDay) { var newFileName = SavePath + GameDataSaveLoadManager.Instance.GameDataFileName + "-" + DateTime.Now.ToString("ddMMMyyyy") + ".bak"; if (File.Exists(newFileName)) { File.Delete(newFileName); } File.Move(oldFileName, newFileName); } else { var newFileName = SavePath + GameDataSaveLoadManager.Instance.GameDataFileName + "-" + DateTime.Now.ToString("ddMMMyyyy") + " at " + DateTime.Now.ToString("HH-mm-ss") + ".bak"; if (File.Exists(newFileName)) { File.Delete(newFileName); } File.Move(oldFileName, newFileName); } } else if (isAutoSave) { var newFileName = SavePath + GameDataSaveLoadManager.Instance.GameDataFileName + ".autosave.bak"; if (File.Exists(newFileName)) { File.Delete(newFileName); } File.Move(oldFileName, newFileName); } using (var stringwriter = new StreamWriter(SavePath + GameDataSaveLoadManager.Instance.GameDataFileName, false)) { stringwriter.Write(saveFileEncoded); } if (!isAutoSave) { Notify.Save("Saved Game Data"); } //Update game config defaults, in case we added button etc GameSettingsSaveLoadManager.Instance.NewData(); AssetDatabase.Refresh(); }